[英]How can I get the token and secret in Firebase Twitter Login?
我正在使用 Firebase Auth 开发 android 应用程序。 我的应用程序应该使用 Twitter 提供登录功能。 所以我正在开发 Twitter Login 使用 Firebase Auth。
我应该将 Twitter 用户的令牌和密码发送到我们的后端服务器。 但我不知道如何得到它们。
根据firebase官方文档,
firebaseAuth
.startActivityForSignInWithProvider(/* activity= */ this, provider.build())
.addOnSuccessListener(
new OnSuccessListener<AuthResult>() {
@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 secret can be retrieved by calling:
// authResult.getCredential().getSecret().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle failure.
}
});
onSuccess
回调返回AuthResult
但是当我尝试在 function 下面使用时:
authResult.getCredential().getAccessToken()
authResult.getCredential().getSecret()
有没有功能? 我怎样才能得到它们???
AuthResult class 包含一个名为getCredential()的方法,该方法返回 AuthCredential 类型的object 。 但是,此 class不包含任何 getAccessToken() 或 getSecret() 方法。 也没有超级 class 可以容纳它们。
当您尝试使用提供程序实现登录机制时,您应该执行两个操作:
如果您需要获取令牌和密钥的值,则必须从TwitterAuthToken object 中获取它们。 如您所见,此 class 公开了两个名为token
和secret
的公共字段。
因此,一旦您按下登录按钮并选择一个帐户,您将获得结果类型为 object 的Result 。 如您所见,这是一个通用的 class。 这意味着 class 中的data
字段是TwitterSession类型,它是一个 class 扩展Session 。 现在您将能够像这样获得两个对象:
String token = session.getAuthToken().token;
String secret = session.getAuthToken().secret;
现在您可以 go 转发并创建AuthCredential object:
AuthCredential credential = TwitterAuthProvider.getCredential(token, secret);
并使用 Twitter 执行 Firebase 身份验证:
auth.signInWithCredential(credential).addOnCompleteListener(/* ... */);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.