我有一个应用程序通过以下调用对用户进行身份验证:
https://angel.co/api/oauth/authorize?
client_id=...&
state=...&
response_type=code
我已设置以下代码进行身份验证,然后获取AccessToken的代码:
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("https://angel.co/api/oauth/authorize?"
+ "client_id=" + clientId + "&"
+ "response_type=" + RESPONSE_TYPE)
);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
这是我的清单:
<activity android:name=".ui.UserLoginActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:exported="true"
android:screenOrientation="portrait">
<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:host="myapp"
android:scheme="dezign.scheme" />
</intent-filter>
</activity>
当我点击mLoginButton
时,它会从应用中推出到Chrome浏览器,但是当它完成后点击redirectUri
它会显示以下错误并返回应用:
我在这里做错了什么?到目前为止,我还没有找到一个可以接受的答案。
更新已经解决了问题
答案 0 :(得分:0)
现在有效!
我的方案和主机错了,有关此方面的更多文档,请查看以下链接:
我的主人和计划是倒退的,它应该是这样的:
对于我的应用程序,具体应该是:
android:scheme="myapp"
android:host="dezign.scheme"