Xác minh email

Email Verification API là một đề xuất cho phép trình duyệt giao tiếp trực tiếp với nhà cung cấp dịch vụ email để xác minh rằng người dùng sở hữu địa chỉ email. Người dùng nhập email, gửi biểu mẫu và trang web xác minh mã thông báo xác minh email đã ký từ trình duyệt với nhà cung cấp mà không gửi email hoặc làm gián đoạn quy trình của người dùng.

Khi thu thập địa chỉ email trong quá trình đăng ký, đăng nhập, thanh toán, đăng ký nhận bản tin hoặc khôi phục tài khoản, các trang web thường xác nhận rằng người gửi biểu mẫu kiểm soát địa chỉ đó. Các phương thức xác minh hiện tại yêu cầu người dùng rời khỏi trang web của bạn, chuyển đổi ứng dụng để kiểm tra hộp thư đến, sao chép một OTP hoặc nhấp vào đường liên kết xác minh. Sự gián đoạn này làm tăng tỷ lệ bỏ dở và bỏ phiên đối với cả người dùng và tác nhân tự động. Người dùng thường gặp phải khó khăn với các phương thức xác minh hiện có, chẳng hạn như email bị trễ, đường liên kết hết hạn hoặc mã không nhận dạng được.

Bản minh hoạ lời nhắc xác minh email cho người dùng
Bản minh hoạ lời nhắc xác minh email cho người dùng

Xác minh email đóng vai trò là một bước cải tiến tăng dần cho quy trình hiện tại của bạn:

  • Không bị gián đoạn: Quá trình xác minh diễn ra ở chế độ nền trong khi người dùng điền vào biểu mẫu.
  • Không cần phát hiện tính năng: Các trang web thêm một đầu vào email và một đầu vào mã thông báo ẩn vào biểu mẫu của họ. Nếu trình duyệt hoặc nhà cung cấp không hỗ trợ quy trình xác minh email hoặc nếu quy trình xác minh không thành công, thì trang web sẽ quay lại quy trình xác nhận email mặc định.
  • Giảm thiểu rủi ro lừa đảo: Không có mã để sao chép hoặc cơ hội để gửi người dùng đến một trang web giả mạo.

Bạn có thể thử nghiệm quy trình trong bản minh hoạ:

Những điểm cần lưu ý về bản dùng thử theo nguyên gốc

Bản dùng thử theo nguyên gốc là các thử nghiệm nhằm thu thập ý kiến phản hồi, vì vậy, ý kiến của bạn rất quan trọng nếu bạn tham gia với tư cách là bên phụ thuộc hoặc nhà cung cấp danh tính. Để báo cáo vấn đề, hãy sử dụng các kho lưu trữ GitHub sau:

Nếu bạn gặp lỗi trong quá trình triển khai Chrome, hãy báo cáo vấn đề trong thành phần sau:

Bạn kiểm soát chức năng bản dùng thử theo nguyên gốc theo từng phản hồi bằng cách thêm mã thông báo bản dùng thử theo nguyên gốc. Điều này cho phép bạn giới hạn tính năng cho một phân khúc người dùng cụ thể, chẳng hạn như nhóm người dùng thử nghiệm A/B. Ngoài ra, nếu có một nhóm người dùng thử nghiệm beta hoặc dùng thử sớm, thì bạn có thể muốn hoặc cần bật tính năng này cho họ. Trong trường hợp này, hãy kiểm tra địa chỉ email được cung cấp trước khi phát hành hoặc xác thực mã thông báo.

Bản dùng thử theo nguyên gốc cũng có giới hạn về lưu lượng truy cập để giảm thiểu số lượng trang web dựa vào tính năng này trước khi ra mắt. API của tổ chức phát hành đang trong quá trình phát triển và bạn nên dự kiến sẽ có những thay đổi không tương thích ngược cùng với các bản cập nhật cho trải nghiệm người dùng Chrome.

Hãy theo dõi các thông tin cập nhật khác trên blog tại đây và trên danh sách gửi thư evp-announce@chromium.org khi quá trình phát triển diễn ra.

Quy trình xác minh email

Các phần sau đây giải thích các thuật ngữ chính và các bước giao thức khi sử dụng Email Verification API.

Từ khóa

Các thuật ngữ chính cho Email Verification API là:

  • Bên xác minh: Trang web thu thập địa chỉ email và muốn xác minh địa chỉ email đó. Trình xác minh còn được gọi là Bên phụ thuộc.
  • Nhà cung cấp email: Dịch vụ cung cấp địa chỉ email của người dùng, ví dụ: gmail.com.
  • Đơn vị phát hành: Dịch vụ quản lý tài khoản cho email của người dùng, ví dụ: accounts.google.com. Đơn vị phát hành còn được gọi là Nhà cung cấp dịch vụ danh tính.

Trong một số trường hợp, nhà cung cấp dịch vụ email và tổ chức phát hành hoạt động trên cùng một miền. Tuy nhiên, bạn cần phân biệt hai API này vì Email Verification API đang sử dụng phiên hoạt động trong trình duyệt với nhà cung cấp danh tính làm phương thức xác minh. Ví dụ: để xác minh example@gmail.com, người dùng phải đăng nhập vào google.com bằng tài khoản đó trong cùng một trình duyệt.

Luồng giao thức

Cấu trúc quy trình Xác minh email
Cấu trúc quy trình xác minh email
  1. Trình bày biểu mẫu: Bên phụ thuộc phân phát một biểu mẫu HTML chứa <input type="email"> và một đầu vào ẩn được đánh dấu bằng autocomplete="email-verification-token" và nonce duy nhất cho mỗi phiên bản.
  2. Nhập email: Khi người dùng nhập địa chỉ email (bằng cách chọn một đề xuất tự động điền hoặc bằng cách nhập hoặc dán và thoát khỏi trường (blur)), trình duyệt sẽ kích hoạt quy trình xác minh ở chế độ nền.
  3. Khám phá và phiên: Trình duyệt truy vấn bản ghi DNS TXT cho _email-verification.<email-domain> để khám phá nguồn gốc của nhà phát hành được uỷ quyền của nhà cung cấp, sau đó kiểm tra xem người dùng có phiên hoạt động hay không bằng cách sử dụng cấu hình .well-known/web-identity của nhà phát hành và các điểm cuối tài khoản FedCM. Nếu miền không xuất bản bản ghi EVP hoặc không có phiên hoạt động nào, thì trình duyệt sẽ dừng quy trình xác minh mà không nhắc người dùng.
  4. Phát hành mã thông báo: Trình duyệt phát hiện issuance_endpoint của nhà cung cấp từ .well-known/email-verification, tạo một cặp khoá tạm thời và gửi yêu cầu HTTP POST bằng Chữ ký thông báo HTTP (RFC 9421) với cookie phiên của bên thứ nhất của tổ chức phát hành và địa chỉ email mục tiêu để nhận Mã thông báo xác minh email đã ký (EVT).
  5. Liên kết khoá và gửi: Trình duyệt liên kết EVT đã ký với nguồn gốc của bên đáng tin cậy và biểu mẫu nonce bên trong JWT liên kết khoá (KB-JWT). Khi người dùng gửi biểu mẫu, Chrome sẽ điền sẵn mã thông báo kết hợp (<EVT>~<KB-JWT>) vào dữ liệu đầu vào ẩn và hiển thị một thông báo nhỏ cho người dùng biết rằng nhà cung cấp email của họ đã xác minh địa chỉ của họ.
  6. Xác thực các xác nhận quyền sở hữu và KB: Máy chủ bên đáng tin cậy phân tích cú pháp mã thông báo <EVT>~<KB-JWT>, xác thực các xác nhận quyền sở hữu dự kiến (email, email_verified, aud, nonce, iat và exp) và xác minh chữ ký liên kết khoá dựa trên khoá công khai tạm thời trong cnf.jwk.
  7. DNS và khoá công khai: Bên tin cậy truy vấn bản ghi TXT DNS _email-verification.<email-domain> để xác nhận rằng bản ghi này khớp với khai báo iss của mã thông báo, sau đó tìm nạp siêu dữ liệu và khoá công khai .well-known/email-verification của tổ chức phát hành từ jwks_uri.
  8. Xác minh EVT và hoàn tất: Bên tin cậy xác minh chữ ký EVT của tổ chức phát hành bằng khoá công khai JWKS của nhà cung cấp. Nếu không nhận được mã thông báo hoặc bất kỳ bước xác thực nào không thành công, trang web sẽ quay lại quy trình xác nhận email hiện có.

Trong lần đầu tiên người dùng xác minh địa chỉ email, Chrome sẽ hiển thị lời nhắc cấp quyền (một hộp thoại trên máy tính hoặc một bảng dưới cùng trên Android) trước khi yêu cầu mã thông báo. Nếu được cấp, quyền này sẽ được ghi nhớ theo từng địa chỉ email trên các trang web tham gia.

Cài đặt Chrome

Người dùng có thể quản lý email đã xác minh:

  • Trên máy tính, trong phần Cài đặt > Tự động điền và mật khẩu > Thông tin liên hệ > Email đã xác minh (hoặc mở chrome://settings/contactInfo)
  • Trên Android, trong phần Cài đặt > Địa chỉ và thông tin khác > Email đã xác minh

Người dùng có thể tắt hoàn toàn tính năng này hoặc quản lý từng địa chỉ email đã xác minh.

Những điểm cần cân nhắc về trường hợp sử dụng

Xác minh email là một tính năng cải tiến từng bước cho quy trình hiện tại của bạn, giúp người dùng không cần rời khỏi trang web của bạn để truy xuất OTP hoặc nhấp vào một đường liên kết. Các trang web có thể thêm trường xác minh email vào tất cả các biểu mẫu có liên quan, chẳng hạn như đăng nhập, đăng ký nhận bản tin, tạo tài khoản và khôi phục mật khẩu. EVP chỉ kích hoạt nếu trình duyệt hỗ trợ. Nếu không nhận được mã khi gửi hoặc bất kỳ bước xác thực nào không thành công, bạn có thể quay lại quy trình xác nhận email mặc định. Điều này cũng có nghĩa là không có tính năng phát hiện cho API; trang web xác minh coi EVT là không bắt buộc, xử lý EVT nếu có trong yêu cầu.

Xác minh email để xác nhận rằng người dùng có một phiên hoạt động với nhà cung cấp địa chỉ email của họ. Thao tác này không xác minh rằng email của bạn đã đến được người dùng. Bạn vẫn có thể muốn gửi email chào mừng hoặc email hướng dẫn cho người dùng hiện tại và có thể muốn hoặc cần nhắc người dùng kiểm tra chế độ cài đặt thư rác.