第三方登录之支付宝PC网页内获取用户信息
业务流程图
第一步:URL 拼接
后端可以直接重定向到二维码页面return "redirect:" + showQrCode;
URL 拼接规则:https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=SCOPE&redirect_uri=ENCODED_URL
注意:
-
redirect_uri必须是经过转义后的链接
redirectUrl = URLEncoder.encode(redirectUrl, "UTF-8");
-
要设置state参数
商户自定义参数,用户授权后,重定向到 redirect_uri 时会原样回传给商户。 为防止 CSRF 攻击,建议开发者请求授权时传入 state 参数,该参数要做到既不可预测,又可以证明客户端和当前第三方网站的登录认证状态存在关联,并且不能有中文。
如果是单体服务,可以放在session域中,如果是分布式,可以放在redis缓存中
第二步:获取 auth_code
auth_code是用户授权的凭证,每次授权动作都会生成一个新的 auth_code
第三步:换取 access_token 和 userId
根据auth_code、appId、appPrivateKey获取用户换取 access_token 和 userId
第四步:获取用户详细信息
根据access_token 获取用户详细信息