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

微信靜默授權跳轉空白頁:OAuth 流程缺少回調處理

     編輯:程式設計疑難解答

典型錯誤代碼

if (!isset($_GET['code'])) {
    // 構造授權 URL 並重定向
    header('Location: ' . $oauthUrl);
    exit();
}
// 缺少獲取 code 後換取 access_token 並重定向回業務頁面的邏輯

正確流程

  1. 用戶首次訪問 → 重定向到微信授權頁(scope=snsapi_base)
  2. 微信回調帶 code 參數 → 服務端用 code 換取 access_token 和 openid
  3. 保存 openid 到 Session → 重定向回原業務頁面(去掉 code 參數)

關鍵補充

// 換取 access_token 後
$openid = $result['openid'];
$_SESSION['openid'] = $openid;
// 必須重定向乾淨 URL,否則停留在帶 code 的頁面顯示空白
header('Location: ' . $cleanUrl);
exit();

調試建議

在回調頁面 var_dump($_GET) 確認 code 是否到達;檢查 curl 請求微信 API 是否超時。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved