首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 整合 QQ/微博 快速登入:OAuth 2.0 授權碼流程實作概覽

     編輯:程式設計綜合問答

核心流程

  1. 引導使用者至授權頁(瀏覽器或內嵌 WebView):
    https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&scope=get_user_info
  2. 使用者授權後,平台重導向至 redirect_uri?code=AUTH_CODE。
  3. 後端用 code 換取 access_token:
    POST https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&code=...&client_id=...&client_secret=...&redirect_uri=...
  4. 攜帶 access_token 呼叫 OpenAPI 獲取用戶資訊:
    GET https://graph.qq.com/user/get_user_info?access_token=...&oauth_consumer_key=...&openid=...
  5. 根據 openid 查找/建立本地用戶,發行自有 Session/JWT。

Java 實作要點

  • 使用 HttpClient (Apache HttpComponents 4.5+/Java 11 HttpClient) 發送請求。
  • 妥善保管 client_secret,**切勿前端暴露**,所有 token 交換在後端完成。
  • 驗證 state 參數防止 CSRF 攻擊。
  • 快取 access_token(有效期通常 30~90 天),過期用 refresh_token 續期。

開放平台文件

現代替代

使用成熟庫簡化整合:

  • JustAuth (Java):AuthRequest authRequest = new AuthQqRequest(config); 一鍵完成授權、獲取用戶資訊。
  • Spring Security OAuth2 Client:標準化配置 spring.security.oauth2.client.registration.qq...。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved