微信公眾號網(wǎng)頁授權(quán)登錄的超簡單實現(xiàn)步驟
前言
這篇文章帶大家掌握 從0到1實現(xiàn)微信公眾平臺授權(quán)登錄
微信公眾號授權(quán)登錄到底哪幾步回調(diào)地址,安全域名怎么配置代碼怎么寫出了問題怎么辦
一、微信公眾號授權(quán)登錄到底哪幾步
官方文檔介紹微信開放文檔微信開發(fā)者平臺文檔https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
文檔看似很復雜,實際上前端只需要兩步:
1、去訪問微信提供的一個url地址
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
或者https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
兩種的區(qū)別是:scope為snsapi_base和scope為snsapi_userinfo,區(qū)別就是是否彈出用戶授權(quán);
應用授權(quán)作用域,snsapi_base (不彈出授權(quán)頁面,直接跳轉(zhuǎn),只能獲取用戶openid),snsapi_userinfo (彈出授權(quán)頁面,可通過 openid 拿到昵稱、性別、所在地。并且, 即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息 )
這個地址需要你配置的地方有:appid(微信公眾號id)和redirect_uri(回調(diào)地址)
2、訪問這個地址后,微信會回跳你設置的redirect_uri地址,并且?guī)Щ貋硪粋€code,
把這個code傳給后臺,后臺去訪問微信的接口,獲取用戶的openid和access_token,
到這里也用實現(xiàn)了微信的授權(quán)登錄。
二、回調(diào)地址,安全域名怎么配置
1、在申請到認證公眾號之前,你可以先通過測試號申請系統(tǒng),快速申請一個接口測試號,立即開始接口測試開發(fā)。(測試號申請地址)
微信開放文檔微信開發(fā)者平臺文檔https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Requesting_an_API_Test_Account.html
redirect_uri的配置:
只需要配置回調(diào)域名 (請注意,這里填寫的是域名(是一個字符串),而不是URL,因此請勿加 http:// 等協(xié)議頭;)。
(1)打開微信公眾號測試號(方便開發(fā)調(diào)式),修改js安全域名,也可以設置192的地址
(2)找到體驗接口權(quán)限表-網(wǎng)頁賬戶-修改
(3)設置回調(diào)域名
(4)微信公眾號正式號設置
三、代碼怎么寫
代碼如下(示例):
<template> <div class="login"></div> </template> <script> import { login } from "@/api/login.js"; import indexConfig from "@/config/index.config"; export default { data() { return {}; }, created() { this.isWXBrowser = this.isWXBrowser(); if (this.isWXBrowser) { let code = this.getUrlCode("code"); if (code) { this.wxLogin(code); //后臺登錄 } else { this.getWeChatCode(); //微信授權(quán) } } }, onload() {}, mounted() {}, methods: { //判斷是否是微信內(nèi)置的瀏覽器 isWXBrowser() { return ( String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger" ); }, //截取地址欄code getUrlCode(name) { return ( decodeURIComponent( (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec( location.href ) || [, ""])[1].replace(/\+/g, "%20") ) || null ); }, //訪問微信地址,用來獲取code getWeChatCode() { let local = encodeURIComponent(window.location.href); //獲取當前頁面地址作為回調(diào)地址 let appid = indexConfig.weixinAppId; //通過微信官方接口獲取code之后,會重新刷新設置的回調(diào)地址【redirect_uri】 window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" + local + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect"; }, //把code傳遞給后臺接口,靜默登錄 wxLogin(code) { login(code).then((res) => { if (res.success) { uni.setStorageSync("token", res.data.session.token); uni.setStorageSync("userid", res.data.session.userid); uni.navigateTo.push({ route: "/pages/works/index", }); } else { uni.showToast({ title: res.msg, duration: 3000, icon: "none", }); return; } }); }, }, }; </script> <style lang="scss" scoped> </style>
四、出現(xiàn)問題怎么辦
在開發(fā)出現(xiàn)問題時,可以通過接口調(diào)用的返回碼,以及報警排查指引(在公眾平臺官網(wǎng) - 開發(fā)者中心處可以設置接口報警),來發(fā)現(xiàn)和解決問題
總結(jié)
到此這篇關(guān)于微信公眾號網(wǎng)頁授權(quán)登錄的超簡單實現(xiàn)的文章就介紹到這了,更多相關(guān)微信公眾號網(wǎng)頁授權(quán)登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
table對象中的insertRow與deleteRow使用示例
本文為大家介紹下table對象insertRow deleteRow的使用示例,適合新手朋友們2014-01-01js借助ActiveXObject實現(xiàn)創(chuàng)建文件
創(chuàng)建文件的方法有很多,在本文為大家詳細介紹下js中時如何實現(xiàn)的,感興趣的朋友不要錯過了2013-09-09javascript執(zhí)行環(huán)境及作用域詳解
這篇文章主要為大家詳細介紹了javascript執(zhí)行環(huán)境及作用域,分別針對javascript執(zhí)行環(huán)境及作用域進行探討,感興趣的小伙伴們可以參考一下2016-05-05js經(jīng)驗分享 JavaScript反調(diào)試技巧
在這篇文章中,我打算跟大家總結(jié)一下關(guān)于JavaScript反調(diào)試技巧方面的內(nèi)容。值得一提的是,其中有些方法已經(jīng)被網(wǎng)絡犯罪分子廣泛應用到惡意軟件之中了,需要的朋友可以參考下2018-03-03