1. 程式人生 > >記錄一下discuz3.3+微信OAuth2.0網頁授權過程

記錄一下discuz3.3+微信OAuth2.0網頁授權過程

    嘗試實現以下流程:點選微信選單,在微信瀏覽器中開啟網頁進行編輯操作,並以微信中的使用者資訊編輯上傳內容。

    首先進行網頁授權,進入微信平臺,“開發 - 介面許可權 - 網頁服務 - 網頁帳號 - 網頁授權獲取使用者基本資訊”的配置選項中,修改授權回撥域名。

第一步:使用者同意授權,獲取code

    在網站根目錄建立oauth2.php檔案:

<?php

	if (isset($_GET['code'])){
		echo $_GET['code'];
	}else{
		echo "NO CODE";
	}

?>

    在微信中構造並開啟以下連線,appid***替換為自己的appid,url***替換為自己的域名:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid***&redirect_uri=http://url***/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

    開啟以上連線後,得到code:


第二步:通過code換取網頁授權access_token

    第一步成功取得code後,構造以下連線,其中,紅色部分需要替換為自己的對應值:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid***

&secret=secret***&code=code***&grant_type=authorization_code

    這連線直接在pc瀏覽器中開啟,得到以下結果:

{

"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7OMDg05IW***",

"expires_in":7200,

"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6xWN7kkRZenaFUqvhmJhxgvd6epTFjhWJflV***",

"openid":"olXyUwaWwouEo3_UrJpCQ8***",

"scope":"snsapi_userinfo"

}

第三步:重新整理access_token(如果需要)

替換以下連線中的紅色部分,在pc瀏覽器中開啟:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid***&grant_type=refresh_token&refresh_token=refresh_token***

得到以下內容:

{

"openid":"olXyUwaWwouEo3_U***",

"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7***",

"expires_in":7200,

"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6x***",

"scope":"snsapi_base,jsapi_record,jsapi_location,snsapi_userinfo,"

}

第四步:拉取使用者資訊(需scope為 snsapi_userinfo)

根據上面得到的access_token以及openid,替換以下連線中的紅色部分,在pc瀏覽器中開啟:

https://api.weixin.qq.com/sns/userinfo?access_token=access_token***&openid=openid***

返回以下結果:

{
"openid":"olXyUwaW***",
"nickname":"***",
"sex":*,
"language":"zh_CN",
"city":"",
"province":"",
"country":"CN",
"headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/SXSQqYR286eWx***",
"privilege":[]
}