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 sẽ xác minh mã xác minh email đã ký từ trình duyệt với nhà cung cấp mà không cần 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 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ỏ ngang 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 khó khăn với các phương thức xác minh hiện có, chẳng hạn như email bị chậm trễ, đường liên kết hết hạn hoặc mã không được nhận dạng.

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 dữ liệu đầu vào email và dữ liệu đầ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ợ tính năng xác minh email hoặc nếu không xác minh được, 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ần mã để sao chép hoặc cơ hội để đưa 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 để thu thập ý kiến phản hồi, vì vậy, ý kiến đóng góp của bạn rất quan trọng nếu bạn tham gia với tư cách là bên Relying Party 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 bản xem trước, 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 lưu lượng truy cập để giảm thiểu việc các trang web dựa vào tính năng này trước khi ra mắt. API của nhà phát hành đang trong quá trình phát triển và bạn nên chuẩn bị cho 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 trên 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à:

  • Trình xác minh: Trang web thu thập địa chỉ email và muốn xác minh địa chỉ đó. Trình xác minh cũng được gọi là Bên phụ thuộc.
  • Nhà cung cấp dịch vụ email: Dịch vụ cung cấp địa chỉ email của người dùng, ví dụ: gmail.com.
  • Nhà 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à đơn vị 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.

Quy trình 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 dữ liệu đầu vào ẩn được đánh dấu bằng autocomplete="email-verification-token" và nonce duy nhất cho mỗi thực thể.
  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 TXT DNS cho _email-verification.<email-domain> để khám phá nguồn gốc của công ty 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 công ty phát hành và đ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 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 khám phá 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) cùng với cookie phiên của bên thứ nhất của nhà phát hành và địa chỉ email mục tiêu để nhận Mã 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) 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ỉ. Khi người dùng gửi biểu mẫu, Chrome sẽ điền mã thông báo kết hợp (<EVT>~<KB-JWT>) vào dữ liệu đầu vào ẩn.
  6. Xác thực thông tin xác nhận quyền sở hữu và KB: Máy chủ của bên Relying Party phân tích cú pháp mã thông báo <EVT>~<KB-JWT>, xác thực thông tin 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 phụ thuộc truy vấn bản ghi TXT DNS _email-verification.<email-domain> để xác nhận rằng bản ghi đó khớp với thông báo xác nhận quyền sở hữu iss của mã thông báo, sau đó tìm nạp siêu dữ liệu .well-known/email-verification và khoá công khai của nhà 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ớ cho 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à các chế độ cài đặt 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 dần cho quy trình hiện tại của bạn, giúp người dùng không cần phải rời khỏi trang web của bạn để lấy 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ả biểu mẫu có liên quan, chẳng hạn như biểu mẫu đă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 của trình xác minh coi EVT là không bắt buộc, xử lý nếu có trong yêu cầu.

Tính năng 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ọ. Trạng thái 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ể gửi email chào mừng hoặc email hướng dẫn hiện có 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 của họ.