Khắc phục các lỗi thường gặp của Trình quản lý thông tin xác thực

Hướng dẫn này liệt kê các mã lỗi và nội dung mô tả thường gặp liên quan đến Credential Manager, đồng thời cung cấp một số thông tin về nguyên nhân gây ra các lỗi đó.

Mã lỗi và nội dung mô tả Nguyên nhân

android.os.TransactionTooLargeException

Đây là do một vấn đề đã biết trong đó API credentialManager.getCredential() trên Android 14 trở lên không hiển thị hộp thoại đăng nhập khi có nhiều Tài khoản Google trên thiết bị. Vấn đề này chỉ xảy ra với GetGoogleIdOption chứ không phải GetSignInWithGoogleOption. Vấn đề này đã được khắc phục trong Dịch vụ Google Play phiên bản 24.40.XX trở lên.

CreateCredentialCancellationException

Người dùng đã huỷ thao tác đăng ký hoặc truy xuất khoá truy cập.

Người dùng đã chọn không tạo hoặc sử dụng chứng chỉ. Giờ đây, bạn có thể điều chỉnh giao diện người dùng để cung cấp một phương thức đăng nhập thay thế hoặc chuyển sang các bước tiếp theo trong quy trình.

GetCredentialCancellationException

Quy trình truy xuất thông tin đăng nhập đã bị chấm dứt vì không có được sự uỷ quyền cần thiết của người dùng. Mặc dù điều này thường xảy ra nhất khi người dùng huỷ quy trình đăng nhập theo cách thủ công, nhưng điều này cũng có thể cho biết rằng yêu cầu không được uỷ quyền do các hạn chế về kỹ thuật. Vì lỗi này cho biết rằng người dùng chưa đồng ý, nên bạn không được tự động thử lại yêu cầu, vì điều này sẽ gây gián đoạn trải nghiệm người dùng. Tuy nhiên, nhà phát triển nên theo dõi tần suất xảy ra trường hợp ngoại lệ này. Số lượng lớn "huỷ" có thể cho thấy cấu hình sai (chẳng hạn như thiếu hoặc sai phạm vi) khiến giao diện người dùng uỷ quyền không hoàn tất thành công. Nếu bạn nhận thấy các xu hướng không mong muốn, hãy xem lại các thông số yêu cầu và cấu hình [bên tin cậy][2].

Lưu ý: Thông báo lỗi có thể khác nhau tuỳ thuộc vào loại thông tin đăng nhập:

  • Đối với khoá truy cập, thông báo lỗi có thể là "Người dùng đã huỷ quy trình đăng ký hoặc truy xuất khoá truy cập".
  • Đối với tính năng Đăng nhập bằng Google, thông báo lỗi có thể là "Người dùng đã huỷ hoạt động".

CreateCredentialCustomException hoặc GetCredentialCustomException

Khi sử dụng SDK bên thứ ba để thực hiện các lệnh gọi API bằng một đối tượng yêu cầu phân lớp phụ CreateCustomCredentialRequest hoặc GetCustomCredentialOption, bạn có thể gặp lỗi. Nếu điều này xảy ra, hãy kiểm tra SDK để tìm các hằng số loại ngoại lệ tuỳ chỉnh khớp với e.type. Nếu không tìm thấy kết quả trùng khớp, bạn có thể loại bỏ hoặc ghi lại ngoại lệ một cách an toàn.

CreateCredentialInterruptedException hoặc GetCredentialInterruptedException

Thao tác có thể bị gián đoạn do người dùng chuyển đến phần cài đặt để định cấu hình lại trình quản lý mật khẩu. Những lý do khác cũng có thể góp phần gây ra tình trạng gián đoạn này. Vui lòng thử gọi lại.

CreateCredentialUnknownException

Trong quá trình lưu mật khẩu, đã phát hiện phản hồi lỗi mật khẩu từ Cơ chế một lần chạm 16: [28431] Bỏ qua quá trình lưu mật khẩu vì có khả năng người dùng được tính năng Tự động điền của Android nhắc.

Lỗi này chỉ ảnh hưởng đến Android 13 và các phiên bản trước đó khi Google là nhà cung cấp dịch vụ Tự động điền được chỉ định. Trong trường hợp này, người dùng sẽ nhận được lời nhắc lưu từ tính năng Tự động điền và mật khẩu sẽ được lưu trữ trong Trình quản lý mật khẩu của Google. Điều quan trọng là thông tin đăng nhập được lưu bằng tính năng Tự động điền bằng Google sẽ được đồng bộ hoá hai chiều với Credential Manager API. Do đó, bạn có thể yên tâm bỏ qua lỗi này.

CreatePublicKeyCredentialDomException và GetPublicKeyCredentialDomException

Rất có thể ngoại lệ DOM chứa một domError cụ thể hơn. Bạn có thể liên kết khoá này với một DomException WebAuthn để biết thêm thông tin chi tiết.

CreatePublicKeyCredentialDomException và GetPublicKeyCredentialDomException

Không xác thực được yêu cầu đến.

Máy chủ của trình quản lý mật khẩu không nhận dạng được mã gói của ứng dụng. Điều này cho thấy có thể đã xảy ra vấn đề với việc tích hợp phía máy chủ, cụ thể là thiết lập đường liên kết đến tài sản kỹ thuật số. Kiểm tra kỹ để đảm bảo mã gói và SHA trong tệp asset link là chính xác.

CreatePublicKeyCredentialDomException:

Không tạo được khoá trong quá trình đăng ký

Vấn đề này có thể xảy ra khi người dùng đóng hộp thoại khoá màn hình trong quá trình đăng ký.

CreateCredentialNoCreateOptionException

Ngoại lệ cụ thể này cho biết người dùng chưa định cấu hình trình quản lý mật khẩu hợp lệ. Lỗi này không phải do người dùng huỷ quy trình theo cách thủ công mà là một lỗi riêng biệt.

CreatePublicKeyDomException và GetPublicKeyCredentialDomException

Người dùng đã huỷ quá trình đăng ký khoá truy cập.

Người dùng đã huỷ thao tác truy xuất khoá truy cập.

Vấn đề này có thể xảy ra khi người dùng đóng hộp thoại vân tay trong quá trình đăng ký / truy xuất khoá truy cập.

GetCredentialProviderConfigurationException và CreateCredentialProviderConfigurationException

Không tìm thấy phần phụ thuộc của nhà cung cấp getCredentialAsync

Không tìm thấy phần phụ thuộc của nhà cung cấp createCredentialAsync

Thiếu phần phụ thuộc androidx.credentials:credentials-play-services-auth:<latest-version>.

GetCredentialUnsupportedException hoặc CreateCredentialUnsupportedException

Thiết bị của bạn không hỗ trợ trình quản lý thông tin đăng nhập

Đảm bảo bạn đã cập nhật thư viện thông tin đăng nhập lên phiên bản 1.2.1 trở lên.

GetPublicKeyCredentialException

Không giải mã được thông tin đăng nhập

Vấn đề này xảy ra khi bạn cố gắng sử dụng khoá truy cập sau khi đăng xuất rồi đăng nhập lại vào Tài khoản Google. Hướng dẫn người dùng đăng nhập lại vào Tài khoản Google trên thiết bị của họ.

NoCreateOptionException

Đây là hành vi dự kiến khi người dùng chưa thiết lập thông tin đăng nhập bằng khoá truy cập trên thiết bị hoặc nếu họ chưa định cấu hình trình quản lý mật khẩu.

NoCredentialException

Không tìm thấy thông tin đăng nhập nào trùng khớp

Ngoại lệ này xảy ra trong các trường hợp sau:

  • setFilterByAuthorizedAccounts được đặt thành true mà không có tài khoản được uỷ quyền trên thiết bị.
  • Không có tài khoản nào đã đăng nhập trên thiết bị (chưa thêm tài khoản nào hoặc cần xác thực lại tài khoản).
  • Giao diện người dùng bottomsheet sẽ không xuất hiện nếu bạn tắt tính năng Lời nhắc đăng nhập cho bất kỳ tài khoản nào trên thiết bị. Bạn phải bật chế độ cài đặt chung này (trong phần Chế độ cài đặt Tài khoản Google > Đăng nhập bằng Google) thì giao diện người dùng ở cuối màn hình mới hiển thị cho mọi tài khoản. Việc này không ảnh hưởng đến quy trình nhấn nút.

Không tạo được khoá truy cập do dữ liệu đã mã hoá bị khoá

Người dùng cần đặt lại dữ liệu phía máy chủ Chrome. Dữ liệu này bao gồm cả dấu trang và chế độ cài đặt Chrome, ngoài mật khẩu và khoá truy cập bạn đã lưu. Để biết thêm thông tin về dữ liệu mà Chrome lưu trữ, hãy chuyển đến trang Dữ liệu Chrome trong tài khoản của bạn.

  1. Truy cập vào trang chrome.google.com/sync.
  2. Ở dưới cùng, hãy chọn Xoá dữ liệu.
  3. Trên thiết bị, hãy bật tính năng Đồng bộ hoá trong Chrome.

Lỗi khi bắt đầu đăng nhập: 8: Lỗi nội bộ không xác định.

Thiết bị có thể chưa được thiết lập đúng cách bằng Tài khoản Google. Có thể có vấn đề với cách tạo JSON của khoá truy cập. Kiểm tra kỹ việc triển khai để đảm bảo tính chính xác.

Không thể lấy tài khoản đồng bộ hoá

Dịch vụ Google Play phiên bản 24.40.XX trở lên sẽ cung cấp mã lỗi nhiều thông tin hơn. Ví dụ: thay vì thông báo "Không thể lấy tài khoản đồng bộ hoá", người gọi giờ đây sẽ nhận được thông báo lỗi huỷ.