本文實例講述了PHP版微信第三方實現一鍵登錄及獲取用戶信息的方法。分享給大家供大家參考,具體如下:
注意,要使用微信在第三方網頁登錄是需要“服務號”才可以哦,所以必須到官方申請
一開始你需要進入微信公眾平台開啟開發模式,並且填寫oauth2的回調地址,地址填寫你項目的域名就可以了.比如:www.baidu.com或zhidao.baidu.com.如果你的項目在二級域名就寫二級域名
前端url授權地址,在url中填寫appid與你項目中方法中的oauth的地址,具體在下面的代碼中可以看到.
<a href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=http://www.xxxxxx.com/action/function/oauth2&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect">授權</a>
再說后台邏輯,首先調用微信接口的SDK.(后面會有)
include('./Card/Common/class_weixin_adv.php');
之后填入微信官方給的的appid與secret
$weixin=new class_weixin_adv("appid", "secret");
初始化SDK的類,取到code,利用獲取到的code在獲取出openid 看下面代碼注釋!
繼續調用SDK方法,獲取到用戶信息.此時$row已經獲得用戶信息了 可以var_dump下看看鍵值方便存入數據庫
$row=$weixin->get_user_info($res['openid']);
獲取用戶信息就大功告成了,但這還不夠.我們需要的是無需注冊!所以需要利用openid,openid屬於唯一憑證,每個用戶對不同的公眾號都有不同的openid.可以理解成用戶賬號的感覺.我這里用的是把openid存入cookie的解決方案,類似用戶登陸的感覺,一些關鍵數據驗證只需要與數據庫中的openid進行對比.其他的一些利用方法可以發揮大家的想象!可以跟我留言交流!
關於之前的a鏈接的授權,大家也可以判斷cookie是否存在openid,從而讓未授權用戶直接跳轉到該地址,省卻了用戶的一步操作.
下面是完整邏輯代碼,大家可以參考下!
SDK代碼:微信官方有手冊,我就不多講了,自己研究,很簡單的!
出處至:腳本之家