Luồng tích hợp Android

Để tích hợp Smart Lock cho Mật khẩu vào ứng dụng Android, bạn phải thêm các lệnh gọi vào API Thông tin xác thực vào quy trình khởi động và đăng nhập của ứng dụng. Sơ đồ dưới đây cho thấy quy trình của một ứng dụng Android thông thường sử dụng Smart Lock cho Mật khẩu.

Mặc dù có nhiều cách để tích hợp thành công Smart Lock cho Mật khẩu và các chi tiết tích hợp phụ thuộc vào cấu trúc và trải nghiệm người dùng của ứng dụng, nhưng quy trình sau được đề xuất cho hầu hết các ứng dụng. Các ứng dụng sử dụng quy trình này có lợi thế về trải nghiệm người dùng:

  • Người dùng hiện tại của dịch vụ đã lưu một thông tin đăng nhập sẽ được đăng nhập ngay lập tức và sẽ được chuyển thẳng đến chế độ xem đã đăng nhập khi mở ứng dụng.
  • Người dùng đã lưu nhiều thông tin đăng nhập hoặc đã tắt tính năng đăng nhập tự động chỉ cần phản hồi một hộp thoại trước khi chuyển đến chế độ xem đăng nhập của ứng dụng.
  • Người dùng chưa lưu thông tin đăng nhập hoặc chưa đăng ký có thể chọn tên và email của họ chỉ bằng một lần nhấn và được gửi thông minh đến chế độ xem đăng nhập hoặc đăng ký một cách thông minh và thông tin này sẽ được điền trước.
  • Khi người dùng đăng xuất, ứng dụng sẽ đảm bảo họ không tự động đăng nhập lại.

Sơ đồ quy trình đăng nhập bằng Smart Lock

Truy xuất thông tin xác thực

  1. Khi ứng dụng khởi động, nếu chưa có người dùng nào đăng nhập, hãy gọi CredentialsClient.request().
  2. Nếu Task thành công, hãy lấy thông tin đăng nhập của người dùng bằng getResult().getCredential() và sử dụng các thông tin đó để đăng nhập.
  3. Nếu Task không thành công và ngoại lệ là bản sao của ResolvableApiExceptiongetStatusCode() trả về RESOLUTION_REQUIRED, thì người dùng phải nhập thông tin đăng nhập để chọn thông tin đăng nhập. Gọi startResolutionForResult() để nhắc người dùng chọn một tài khoản đã lưu, sau đó gọi getParcelableExtra(Credential.EXTRA_KEY) để nhận thông tin xác thực của người dùng và sử dụng thông tin đó để đăng nhập.

Lưu thông tin đăng nhập

  1. Nếu Task không thành công với ApiExceptiongetStatusCode() trả về SIGN_IN_REQUIRED, thì người dùng không có thông tin đăng nhập nào phải lưu và phải đăng nhập hoặc đăng ký theo cách thủ công bằng quy trình đăng nhập hoặc đăng ký hiện tại. Sau khi người dùng hoàn tất quá trình đăng nhập, bạn có thể cho phép người dùng lưu thông tin đăng nhập của họ để truy xuất trong tương lai (bước 5).

    Bạn có thể giúp người dùng đăng nhập hoặc đăng ký nhanh hơn và dễ dàng hơn bằng cách truy xuất các gợi ý đăng nhập, chẳng hạn như địa chỉ email của người dùng. Người dùng có thể chọn gợi ý và bỏ qua thao tác nhập thông tin xác thực của họ. Nếu ứng dụng của bạn yêu cầu người dùng đăng nhập, thì bạn có thể chọn truy xuất gợi ý ngay lập tức sau khi yêu cầu thông tin đăng nhập ban đầu không thành công (nếu không, bạn có thể đợi cho đến khi người dùng bắt đầu quy trình đăng nhập hoặc đăng ký).

    1. Gọi CredentialsClient.getHintPickerIntent() và bắt đầu ý định để nhắc người dùng chọn một tài khoản, sau đó gọi getParcelableExtra(Credential.EXTRA_KEY) để nhận gợi ý đăng nhập.
    2. Nếu mã nhận dạng người dùng của gợi ý khớp với người dùng hiện có, hãy điền sẵn biểu mẫu đăng nhập rồi cho phép người dùng nhập mật khẩu để đăng nhập.
    3. Nếu mã nhận dạng người dùng của gợi ý không khớp với người dùng hiện có, hãy điền sẵn biểu mẫu đăng ký bằng mã và tên của người dùng rồi để người dùng tạo tài khoản mới.
  2. Sau khi người dùng đăng nhập hoặc tạo tài khoản thành công, hãy lưu mã nhận dạng người dùng và mật khẩu bằng CredentialsClient.save().

    Nếu người dùng đăng nhập bằng nhà cung cấp danh tính liên kết (chẳng hạn như Đăng nhập bằng Google), hãy tạo đối tượng Credential bằng địa chỉ email của người dùng làm mã nhận dạng và chỉ định nhà cung cấp danh tính bằng setAccountType.

Đăng xuất

  1. Khi người dùng đăng xuất, hãy gọi CredentialsClient.disableAutoSignIn() để ngăn người dùng đăng nhập lại ngay lập tức. Việc tắt tính năng tự động đăng nhập cũng cho phép người dùng dễ dàng chuyển đổi giữa các tài khoản, ví dụ như giữa tài khoản công việc và tài khoản cá nhân, hoặc giữa các tài khoản trên các thiết bị dùng chung mà không cần phải nhập lại thông tin đăng nhập.

Bạn đã sẵn sàng tích hợp Smart Lock cho Mật khẩu vào ứng dụng của mình chưa? Bắt đầu.