摘要:微信登錄用戶可使用微信帳號快速登錄你的網站,同一用戶使用微信登錄你的不同應用和公眾帳號,會對應同一個,以便進行不同業務間的帳號統一微信授權登錄可分為掃碼登錄一般用于網頁微信開放平臺跳轉授權登錄第三方使用微信開放平臺微信內置瀏覽器內登錄一
微信登錄:
用戶可使用微信帳號快速登錄你的網站,
同一用戶使用微信登錄你的不同應用和公眾帳號,會對應同一個UnionID,以便進行不同業務間的帳號統一
掃碼登錄(一般用于 PC 網頁)- 微信開放平臺
跳轉 APP 授權登錄(第三方 APP 使用)- 微信開放平臺
微信內置瀏覽器內登錄(一般用于移動端網站,公眾號登錄)- 微信公眾平臺
微信小程序內微信登錄(小程序內部)- 微信公眾平臺
公司項目登錄場景描述:
只限于在微信客戶端打開的網頁應用,在微信消息列表直接給好友發送一個網頁的URL,用戶收到直接點擊URL直接打開頁面
結論:云學院為移動端網站,使用第三種登錄方式,微信網頁授權
網頁授權的兩種方式:1.靜默授權:
用戶感知的就是直接進入了回調頁(往往是業務頁面)
req.scope = @"snsapi_base"
只能獲取access_token和openID
2.非靜默授權:
需要用戶手動同意
req.scope = @"snsapi_userinfo"
獲取更詳細的用戶資料,比如頭像、昵稱、性別等
結論:使用非靜默授權
實現步驟:1、登陸【杏樹林公眾號】后可以查看到【appId】和【appsecret】信息
2、公眾平臺官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息”的配置選項中,修改授權回調域名
3、引導用戶進入授權頁面同意授權,此時會調用微信api獲取code
4、 授權通過后會帶上code參數請求回調地址
5、 后臺獲取code,再次調用微信接口換取網頁授權access_token和openid
6、通過網頁授權access_token和openid獲取用戶基本信息(如果有unionid還會獲取到unionid參數)
示例代碼:
async function wxAuth(req, res) { //解析querystring獲取URL中的code值 let code = req.query.code; //通過拿到的code和appID、app_serect獲取返回信息 let resObj = await getAccessToken(code); //解析得到access_token和open_id let access_token = resObj.access_token; let open_id = resObj.openid; //通過上一步獲取的access_token和open_id獲取userInfo即用戶信息 let userObj = await getUserInfo(access_token, open_id); console.log(userObj); res.render(path.resolve(__dirname,"userInfo.ejs"), {userObj: userObj}); // res.send(userObj);} //通過拿到的code和appID、app_serect獲取access_token和open_id function getAccessToken(code) { return new Promise( (resolve, reject) => { let getAccessUrl = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=` + `${appID}&secret=${appSerect}&code=${code}&grant_type=authorization_code`; https.get(getAccessUrl, (res) => { var resText = ""; res.on("data", (d) => { resText += d; }); res.on("end", () => { var resObj = JSON.parse(resText); resolve(resObj); }); }).on("error", (e) => { console.error(e); }); }); } //通過上一步獲取的access_token和open_id獲取userInfo即用戶信息 function getUserInfo(access_token, open_id) { return new Promise( (resolve, reject) => { let getUserUrl = `https://api.weixin.qq.com/sns/userinfo?access_token=${access_token}&openid=${open_id}&lang=zh_CN`; https.get(getUserUrl, (res) => { var resText = ""; res.on("data", (d) => { resText += d; }); res.on("end", () => { var userObj = JSON.parse(resText); resolve(userObj); }); }).on("error", (e) => { console.error(e); }); })}
demo:
文檔:微信網頁授權
https://mp.weixin.qq.com/wiki...
參考:
https://juejin.im/post/5b5c42...
https://juejin.im/post/5ad54e...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102230.html
摘要:最近搞微信第三方登錄,搞蒙圈了。當你把服務號綁定到開放平臺之后,網頁授權返回的數據會多一個,同一個微信賬號在同一個開放平臺賬號下的是一致的。 最近搞微信第三方登錄,搞蒙圈了。 我們的業務有兩個場景需要使用微信第三方登錄:1、APP 第三方登錄2、H5網頁第三方登錄,具體流程:用戶微信端收到一個二維碼--->掃碼后同意微信授權-->綁定手機號碼 一開始糾結著是不是需要申請公眾號,找了個專...
摘要:相關資料博客微信第三方登錄接口開發端微信掃碼登錄文檔移動端網頁微信公眾平臺授權登錄微信開放平臺登錄與微信公眾平臺授權登錄區別在哪微信登錄接口幾個問題微信登錄的和區別百分號編碼在線轉換第三方登錄 微信登錄接口開發須知 APP登錄接口 PC網站登錄接口 微信移動網頁登錄接口(又稱微信公眾號授權登錄) 移動端非微信自帶瀏覽不支持微信登錄 微信移動網頁登錄接口(又稱微信公眾號授權登錄) ...
閱讀 2263·2021-09-30 09:48
閱讀 3634·2021-09-24 10:27
閱讀 1791·2021-09-22 15:32
閱讀 2026·2021-08-09 13:44
閱讀 3575·2019-08-30 15:55
閱讀 1045·2019-08-29 17:12
閱讀 2000·2019-08-29 17:05
閱讀 2918·2019-08-29 13:43