摘要:微信登錄用戶可使用微信帳號快速登錄你的網(wǎng)站,同一用戶使用微信登錄你的不同應(yīng)用和公眾帳號,會對應(yīng)同一個,以便進行不同業(yè)務(wù)間的帳號統(tǒng)一微信授權(quán)登錄可分為掃碼登錄一般用于網(wǎng)頁微信開放平臺跳轉(zhuǎn)授權(quán)登錄第三方使用微信開放平臺微信內(nèi)置瀏覽器內(nèi)登錄一
微信登錄:
用戶可使用微信帳號快速登錄你的網(wǎng)站,
同一用戶使用微信登錄你的不同應(yīng)用和公眾帳號,會對應(yīng)同一個UnionID,以便進行不同業(yè)務(wù)間的帳號統(tǒng)一
掃碼登錄(一般用于 PC 網(wǎng)頁)- 微信開放平臺
跳轉(zhuǎn) APP 授權(quán)登錄(第三方 APP 使用)- 微信開放平臺
微信內(nèi)置瀏覽器內(nèi)登錄(一般用于移動端網(wǎng)站,公眾號登錄)- 微信公眾平臺
微信小程序內(nèi)微信登錄(小程序內(nèi)部)- 微信公眾平臺
公司項目登錄場景描述:
只限于在微信客戶端打開的網(wǎng)頁應(yīng)用,在微信消息列表直接給好友發(fā)送一個網(wǎng)頁的URL,用戶收到直接點擊URL直接打開頁面
結(jié)論:云學院為移動端網(wǎng)站,使用第三種登錄方式,微信網(wǎng)頁授權(quán)
網(wǎng)頁授權(quán)的兩種方式:1.靜默授權(quán):
用戶感知的就是直接進入了回調(diào)頁(往往是業(yè)務(wù)頁面)
req.scope = @"snsapi_base"
只能獲取access_token和openID
2.非靜默授權(quán):
需要用戶手動同意
req.scope = @"snsapi_userinfo"
獲取更詳細的用戶資料,比如頭像、昵稱、性別等
結(jié)論:使用非靜默授權(quán)
實現(xiàn)步驟:1、登陸【杏樹林公眾號】后可以查看到【appId】和【appsecret】信息
2、公眾平臺官網(wǎng)中的“開發(fā) - 接口權(quán)限 - 網(wǎng)頁服務(wù) - 網(wǎng)頁帳號 - 網(wǎng)頁授權(quán)獲取用戶基本信息”的配置選項中,修改授權(quán)回調(diào)域名
3、引導用戶進入授權(quán)頁面同意授權(quán),此時會調(diào)用微信api獲取code
4、 授權(quán)通過后會帶上code參數(shù)請求回調(diào)地址
5、 后臺獲取code,再次調(diào)用微信接口換取網(wǎng)頁授權(quán)access_token和openid
6、通過網(wǎng)頁授權(quán)access_token和openid獲取用戶基本信息(如果有unionid還會獲取到unionid參數(shù))
示例代碼:
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:
文檔:微信網(wǎng)頁授權(quán)
https://mp.weixin.qq.com/wiki...
參考:
https://juejin.im/post/5b5c42...
https://juejin.im/post/5ad54e...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102230.html
摘要:最近搞微信第三方登錄,搞蒙圈了。當你把服務(wù)號綁定到開放平臺之后,網(wǎng)頁授權(quán)返回的數(shù)據(jù)會多一個,同一個微信賬號在同一個開放平臺賬號下的是一致的。 最近搞微信第三方登錄,搞蒙圈了。 我們的業(yè)務(wù)有兩個場景需要使用微信第三方登錄:1、APP 第三方登錄2、H5網(wǎng)頁第三方登錄,具體流程:用戶微信端收到一個二維碼--->掃碼后同意微信授權(quán)-->綁定手機號碼 一開始糾結(jié)著是不是需要申請公眾號,找了個專...
摘要:相關(guān)資料博客微信第三方登錄接口開發(fā)端微信掃碼登錄文檔移動端網(wǎng)頁微信公眾平臺授權(quán)登錄微信開放平臺登錄與微信公眾平臺授權(quán)登錄區(qū)別在哪微信登錄接口幾個問題微信登錄的和區(qū)別百分號編碼在線轉(zhuǎn)換第三方登錄 微信登錄接口開發(fā)須知 APP登錄接口 PC網(wǎng)站登錄接口 微信移動網(wǎng)頁登錄接口(又稱微信公眾號授權(quán)登錄) 移動端非微信自帶瀏覽不支持微信登錄 微信移動網(wǎng)頁登錄接口(又稱微信公眾號授權(quán)登錄) ...
摘要:外鏈月最新新增提供組件可以用來承載網(wǎng)頁容器會自動鋪滿整個小程序頁面?zhèn)€人類型和海外類型暫不支持需將訪問域名后臺添加至白名單微信授權(quán)鏈接是否可訪問需要測試公眾號關(guān)聯(lián)公眾號關(guān)聯(lián)小程序后,將可在圖文消息自定義菜單模板消息等功能中使用小程序。 小程序入口 微信發(fā)現(xiàn),小程序 公眾號主體查看小程序 好友分享,群分享 公眾號自定義菜單跳轉(zhuǎn) APP頁面跳轉(zhuǎn) 第三方服務(wù) 附近的小程序 掃普通鏈接二維碼打...
閱讀 2274·2021-09-30 09:48
閱讀 3648·2021-09-24 10:27
閱讀 1805·2021-09-22 15:32
閱讀 2036·2021-08-09 13:44
閱讀 3585·2019-08-30 15:55
閱讀 1057·2019-08-29 17:12
閱讀 2019·2019-08-29 17:05
閱讀 2929·2019-08-29 13:43