android10热点验证身份,在 Android 上使用 Microsoft 进行身份验证
使用 OAuth 提供方對象進行 Firebase 身份驗證。請注意,與其他 FirebaseAuth 操作不同,此操作會彈出自定義 Chrome 標簽頁,從而控制您的界面。因此,請不要在您附加的 OnSuccessListener 和 OnFailureListener 中引用您的 Activity,因為當該操作啟動界面時,它們會立即分離。
您應該首先檢查是否已收到響應。通過這種方法登錄時,您的 Activity 將位于后臺,這意味著系統可以在登錄流程中將其回收。為了確保發生這種情況時不讓用戶進行重試,您應該檢查結果是否已經存在。
如需檢查是否存在待處理的結果,請調用 getPendingAuthResult:
Task pendingResultTask = firebaseAuth.getPendingAuthResult();
if (pendingResultTask != null) {
// There's something already here! Finish the sign-in for your user.
pendingResultTask
.addOnSuccessListener(
new OnSuccessListener() {
@Override
public void onSuccess(AuthResult authResult) {
// User is signed in.
// IdP data available in
// authResult.getAdditionalUserInfo().getProfile().
// The OAuth access token can also be retrieved:
// authResult.getCredential().getAccessToken().
// The OAuth ID token can also be retrieved:
// authResult.getCredential().getIdToken().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle failure.
}
});
} else {
// There's no pending result so you need to start the sign-in flow.
// See below.
}
如需啟動登錄流程,請調用 startActivityForSignInWithProvider:
firebaseAuth
.startActivityForSignInWithProvider(/* activity= */ this, provider.build())
.addOnSuccessListener(
new OnSuccessListener() {
@Override
public void onSuccess(AuthResult authResult) {
// User is signed in.
// IdP data available in
// authResult.getAdditionalUserInfo().getProfile().
// The OAuth access token can also be retrieved:
// authResult.getCredential().getAccessToken().
// The OAuth ID token can also be retrieved:
// authResult.getCredential().getIdToken().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle failure.
}
});
成功完成后,可以從返回的 OAuthCredential 對象檢索與提供方關聯的 OAuth 訪問令牌。
使用 OAuth 訪問令牌,您可以調用 Microsoft Graph API。
與 Firebase Authentication 支持的其他提供方不同,Microsoft 不提供照片網址,您必須通過 Microsoft Graph API 來請求個人資料照片的二進制數據。
除了 OAuth 訪問令牌,您還可以從 OAuthCredential 對象檢索用戶的 OAuth ID 令牌。ID 令牌中的 sub 聲明取決于具體應用,該聲明與 Firebase Auth 所使用的可通過 user.getProviderData().get(0).getUid() 訪問的聯合用戶標識不匹配。應改用 oid 聲明字段。使用 Azure AD 租戶登錄時,oid 聲明將完全匹配。不過,對于非租戶,系統將填充 oid 字段。對于聯合 ID 4b2eabcdefghijkl,oid 的格式為 00000000-0000-0000-4b2e-abcdefghijkl。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的android10热点验证身份,在 Android 上使用 Microsoft 进行身份验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio for循环
- 下一篇: android 仿ios tabs,Re