比较奇怪的一个需求,而且也找不到啥资料
大致上是webview打开一个苹果登录的授权链接,然后会重定向到一个网址,获取到登录token
下面开整
1.
url:https://appleid.apple.com/auth/authorize?client_id=%s&redirect_uri=%s&response_type=code id_token
这里需要补充client id(xxx.xxx.xxxx.server类似这种),和redirect uri(https://www.xxx.com/apple_return_url类似这种),这个ios后台应该可以设置
2.
通过webview打开这个链接,并且在overrideurl的接口里判断url是不是1中redirect uri开头的链接,如果是的话可以从中获取到id_token,发给服务端校验登录
webView.loadUrl(1中的url);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!TextUtils.isEmpty(url) && url.startsWith(1中的redirect uri)){
Uri callback = Uri.parse(url);
String code = callback.getQueryParameter("code");
String id_token = callback.getQueryParameter("id_token");
}
return true;
});
服务端可以根据id_token去苹果那校验登录,ok的话继续后续的登录流程
网友评论