android 使用github,在 Android 上使用 GitHub 进行身份验证

使用 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().

}

})

.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().

}

})

.addOnFailureListener(

new OnFailureListener() {

@Override

public void onFailure(@NonNull Exception e) {

// Handle failure.

}

});

成功完成后,可以从返回的 OAuthCredential 对象检索与提供方关联的 OAuth 访问令牌。

您可以使用 OAuth 访问令牌,调用 GitHub API。

例如,如需获取基本个人资料信息,您可以调用 REST API 并传递 Authorization 标头中的访问令牌:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值