对于 Uber 登录,我在 Android 手机端遵循“单点登录”登录机制,但由于刷新令牌,我遇到了问题。我们在 AccessToken 类中获得的刷新令牌(30 个字符数)我们将其传递给服务器以刷新访问令牌。但是,服务器无法使用以下刷新令牌重新生成访问令牌:
curl -F 'client_secret=CLIENT-SERCRET' \
-F 'client_id=CLIENT_ID' \
-F 'grant_type=refresh_token' \
-F 'refresh_token=REFRESH_TOKEN_FROM_ANDROID' \
https://login.uber.com/oauth/v2/token
并得到错误:
{“错误”:“invalid_grant”}
需要访问令牌才能在服务器端获取与游乐设施相关的详细信息。
我们被这个问题困住了,我们将不胜感激。提前致谢。
以下是登录回调的代码片段,我们从中获取刷新令牌:
private class UberLoginCallback implements LoginCallback {
@Override
public void onLoginCancel() {
}
@Override
public void onLoginError(@NonNull AuthenticationError error) {
}
@Override
public void onLoginSuccess(@NonNull AccessToken accessToken) {
String accessToken = accessToken.getToken()
String refreshToekn = accessToken.getRefreshToken()
/*Passing this refresh token on server side but doesn't work as expected*/
}
@Override
public void onAuthorizationCodeReceived(@NonNull String authorizationCode) {
Log.d(TAG, "Authorization Code : " + authorizationCode);
}
}