微信公眾號網(wǎng)頁授權(quán)登錄的超簡單實(shí)現(xiàn)步驟
前言
這篇文章帶大家掌握 從0到1實(shí)現(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

文檔看似很復(fù)雜,實(shí)際上前端只需要兩步:
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
或者h(yuǎn)ttps://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);
應(yīng)用授權(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、訪問這個地址后,微信會回跳你設(shè)置的redirect_uri地址,并且?guī)Щ貋硪粋€code,
把這個code傳給后臺,后臺去訪問微信的接口,獲取用戶的openid和access_token,
到這里也用實(shí)現(xiàn)了微信的授權(quán)登錄。
二、回調(diào)地址,安全域名怎么配置
1、在申請到認(rèn)證公眾號之前,你可以先通過測試號申請系統(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安全域名,也可以設(shè)置192的地址

(2)找到體驗(yàn)接口權(quán)限表-網(wǎng)頁賬戶-修改

(3)設(shè)置回調(diào)域名

(4)微信公眾號正式號設(shè)置


三、代碼怎么寫
代碼如下(示例):
<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); //獲取當(dāng)前頁面地址作為回調(diào)地址
let appid = indexConfig.weixinAppId;
//通過微信官方接口獲取code之后,會重新刷新設(shè)置的回調(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ā)者中心處可以設(shè)置接口報警),來發(fā)現(xiàn)和解決問題
總結(jié)
到此這篇關(guān)于微信公眾號網(wǎng)頁授權(quán)登錄的超簡單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)微信公眾號網(wǎng)頁授權(quán)登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
table對象中的insertRow與deleteRow使用示例
本文為大家介紹下table對象insertRow deleteRow的使用示例,適合新手朋友們2014-01-01
js借助ActiveXObject實(shí)現(xiàn)創(chuàng)建文件
創(chuàng)建文件的方法有很多,在本文為大家詳細(xì)介紹下js中時如何實(shí)現(xiàn)的,感興趣的朋友不要錯過了2013-09-09
JS實(shí)現(xiàn)的簡單下拉框聯(lián)動功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的簡單下拉框聯(lián)動功能,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)修改相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
javascript執(zhí)行環(huán)境及作用域詳解
這篇文章主要為大家詳細(xì)介紹了javascript執(zhí)行環(huán)境及作用域,分別針對javascript執(zhí)行環(huán)境及作用域進(jìn)行探討,感興趣的小伙伴們可以參考一下2016-05-05
js經(jīng)驗(yàn)分享 JavaScript反調(diào)試技巧
在這篇文章中,我打算跟大家總結(jié)一下關(guān)于JavaScript反調(diào)試技巧方面的內(nèi)容。值得一提的是,其中有些方法已經(jīng)被網(wǎng)絡(luò)犯罪分子廣泛應(yīng)用到惡意軟件之中了,需要的朋友可以參考下2018-03-03
通過action傳過來的值在option獲取進(jìn)行驗(yàn)證的方法
通過action傳過來的值在option獲取進(jìn)行驗(yàn)證,下面有個不錯的示例,需要的朋友不要錯過2013-11-11

