是因为缺少正确的回调配置。AppAuth是一个开源的OAuth 2.0和OpenID Connect协议的客户端库,用于在移动应用中实现安全的身份验证和授权流程。
要解决这个问题,需要进行以下步骤:
<activity android:name=".AuthCallbackActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="oauth2callback" />
</intent-filter>
</activity>
上述示例中,回调URI为"myapp://oauth2callback"。
AuthorizationRequest authRequest = new AuthorizationRequest.Builder(
serviceConfig, clientId, ResponseTypeValues.CODE, redirectUri)
.setScopes("openid", "profile", "email")
.build();
上述示例中,redirectUri参数应设置为与AndroidManifest.xml文件中配置的回调URI相同。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 获取授权响应
AuthorizationResponse response = AuthorizationResponse.fromIntent(getIntent());
AuthorizationException error = AuthorizationException.fromIntent(getIntent());
// 处理授权响应
if (response != null) {
// 授权成功
// 处理授权码等信息
} else if (error != null) {
// 授权失败
// 处理错误信息
} else {
// 未收到授权响应或错误
// 处理其他情况
}
}
通过以上步骤的正确配置和处理,就可以捕获到使用AppAuth的安卓登录的授权响应了。
腾讯云相关产品推荐:
领取专属 10元无门槛券
手把手带您无忧上云