android10热点验证身份,在 Android 上使用 Microsoft 进行身份验证
使用 OAuth 提供方對(duì)象進(jìn)行 Firebase 身份驗(yàn)證。請(qǐng)注意,與其他 FirebaseAuth 操作不同,此操作會(huì)彈出自定義 Chrome 標(biāo)簽頁,從而控制您的界面。因此,請(qǐng)不要在您附加的 OnSuccessListener 和 OnFailureListener 中引用您的 Activity,因?yàn)楫?dāng)該操作啟動(dòng)界面時(shí),它們會(huì)立即分離。
您應(yīng)該首先檢查是否已收到響應(yīng)。通過這種方法登錄時(shí),您的 Activity 將位于后臺(tái),這意味著系統(tǒng)可以在登錄流程中將其回收。為了確保發(fā)生這種情況時(shí)不讓用戶進(jìn)行重試,您應(yīng)該檢查結(jié)果是否已經(jīng)存在。
如需檢查是否存在待處理的結(jié)果,請(qǐng)調(diào)用 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.
}
如需啟動(dòng)登錄流程,請(qǐng)調(diào)用 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 對(duì)象檢索與提供方關(guān)聯(lián)的 OAuth 訪問令牌。
使用 OAuth 訪問令牌,您可以調(diào)用 Microsoft Graph API。
與 Firebase Authentication 支持的其他提供方不同,Microsoft 不提供照片網(wǎng)址,您必須通過 Microsoft Graph API 來請(qǐng)求個(gè)人資料照片的二進(jìn)制數(shù)據(jù)。
除了 OAuth 訪問令牌,您還可以從 OAuthCredential 對(duì)象檢索用戶的 OAuth ID 令牌。ID 令牌中的 sub 聲明取決于具體應(yīng)用,該聲明與 Firebase Auth 所使用的可通過 user.getProviderData().get(0).getUid() 訪問的聯(lián)合用戶標(biāo)識(shí)不匹配。應(yīng)改用 oid 聲明字段。使用 Azure AD 租戶登錄時(shí),oid 聲明將完全匹配。不過,對(duì)于非租戶,系統(tǒng)將填充 oid 字段。對(duì)于聯(lián)合 ID 4b2eabcdefghijkl,oid 的格式為 00000000-0000-0000-4b2e-abcdefghijkl。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的android10热点验证身份,在 Android 上使用 Microsoft 进行身份验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio for循环
- 下一篇: android 仿ios tabs,Re