https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&scope=get_user_info
redirect_uri?code=AUTH_CODE。code 換取 access_token:
POST https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&code=...&client_id=...&client_secret=...&redirect_uri=...
access_token 呼叫 OpenAPI 獲取用戶資訊:
GET https://graph.qq.com/user/get_user_info?access_token=...&oauth_consumer_key=...&openid=...
openid 查找/建立本地用戶,發行自有 Session/JWT。HttpClient (Apache HttpComponents 4.5+/Java 11 HttpClient) 發送請求。client_secret,**切勿前端暴露**,所有 token 交換在後端完成。state 參數防止 CSRF 攻擊。access_token(有效期通常 30~90 天),過期用 refresh_token 續期。使用成熟庫簡化整合:
AuthRequest authRequest = new AuthQqRequest(config); 一鍵完成授權、獲取用戶資訊。spring.security.oauth2.client.registration.qq...。