業務流程圖
第一步: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 獲取用戶詳細信息