我想使用一台oauth2服务器来验证我的应用程序。
我知道会发生什么。我想开始一个活动,该活动打开浏览器或具有包含登录网站URL的Webview。 但是,在该URL中,我必须设置应用程序的回调uri,以便oauth2服务器可以应答。
我已经知道我必须将其添加到androidmanifest中的活动中才能接收回调:
<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="oauth-testing" />
</intent-filter>
我也知道我必须这样调用包含登录网站的活动:
Intent intent = new Intent();
intent.setData(Uri.parse("https://someOAuthServer.com?redirect_uri=oauth-testing://UNKNOWN"));
startActivityForResult(intent, REQUEST_CODE);
那是我还没有得到的部分。我了解oauth服务器从url参数redirect_uri
中获取回调uri,并且我了解oauth-testing
告诉我的设备/应用哪个活动接收了回调。但是,我不太清楚在上面的示例中UNKNOWN
所在的地方应该传递什么“ url”。
我必须设置自己的IP吗?如果是,是哪一个?一台设备可以具有多个IP。有关系吗?我见过一种做到这一点的方法:“ oauth-testing:///”。他们只用了三个斜杠。这到底是做什么的?这甚至有效吗?
当我尝试使用“ oauth-testing:///”时,通过导航栏“后退”按钮“返回”我的活动时,我会收到一个回调。但是,它显然不保存任何数据。
我的方法错误吗?我甚至需要打电话给startActivityForResult
还是会向我的活动发送混合信号?
更新 我刚刚发现“ https:///” ==“ https://localhost”。所以,那显然是错误的。我能想到的最后一件事是在该URL中发送我的IP。但是如何?哪一个?
答案 0 :(得分:0)
建议集成Google AppAuth Library来为您处理登录,这遵循最新的安全建议。
他们有一个您可以运行的示例-如果您可以运行该示例,则应该能够将相同的原理应用于自己的应用。
希望这会有所帮助,
加里
PS。如果有帮助,我的博客上How to run the Android AppAuth Code Sample上有一些注释。