h5頁(yè)面微信授權(quán)
1.需要一個(gè)公眾號(hào),網(wǎng)頁(yè)開發(fā)時(shí)的微信授權(quán),首先公司要開通一個(gè)公眾號(hào),然后需要配置相關(guān)的東西:
2.微信網(wǎng)頁(yè)授權(quán):用于獲取用戶針對(duì)于公眾號(hào)的唯一標(biāo)識(shí)openid。但只能添加一個(gè)域名,通常把它設(shè)置為一級(jí)域名。網(wǎng)頁(yè)授權(quán)回調(diào)域名,首先,在微信公眾號(hào)請(qǐng)求用戶網(wǎng)頁(yè)授權(quán)之前,開發(fā)者需要先到公眾平臺(tái)官網(wǎng)中的“開發(fā) - 接口權(quán)限 - 網(wǎng)頁(yè)服務(wù) - 網(wǎng)頁(yè)帳號(hào) - 網(wǎng)頁(yè)授權(quán)獲取用戶基本信息”的配置選項(xiàng)中,修改授權(quán)回調(diào)域名。請(qǐng)注意,這里填寫的是域名(是一個(gè)字符串),而不是URL,因此請(qǐng)勿加 http:// 等協(xié)議頭;其次,授權(quán)回調(diào)域名配置規(guī)范為全域名,比如需要網(wǎng)頁(yè)授權(quán)的域名為:www.qq.com,配置以后此域名下面的頁(yè)面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進(jìn)行OAuth2.0鑒權(quán)。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進(jìn)行OAuth2.0鑒權(quán);最后,如果公眾號(hào)登錄授權(quán)給了第三方開發(fā)者來進(jìn)行管理,則不必做任何設(shè)置,由第三方代替公眾號(hào)實(shí)現(xiàn)網(wǎng)頁(yè)授權(quán)即可。
3.JS接口安全域名:分享到朋友圈(js-sdk)時(shí)用上,此接口要求將當(dāng)前的界面url加密后,才可以分享到朋友圈,需要調(diào)用微信分享功能的時(shí)候就需要配置這個(gè)域名。登錄微信公眾平臺(tái)進(jìn)入“公眾號(hào)設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”,一般JS接口安全域名跟網(wǎng)頁(yè)授權(quán)回調(diào)域名是一致的。
4:授權(quán)獲取code
const getCodeByRedirectToWx = () => {
const next = encodeURIComponent(window.location.href);
const redirectUrl = `${getUrlConfig().wxAuthCallbackUrl}?next=${next}`;
const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx689521122b4e4734&redirect_uri=${encodeURIComponent(
redirectUrl
)}&response_type=code&scope=snsapi_userinfo&state=qw-course#wechat_redirect`;
window.location.href = url;
};
|參數(shù) 是否必須 說明
appid 是 公眾號(hào)的唯一標(biāo)識(shí)
redirect_uri 是 授權(quán)后重定向的回調(diào)鏈接地址,請(qǐng)使用urlencode對(duì)鏈接進(jìn)行處理
response_type 是 返回類型,請(qǐng)?zhí)顚慶ode
scope 是 應(yīng)用授權(quán)作用域,snsapi_base (不彈出授權(quán)頁(yè)面,直接跳轉(zhuǎn),只能獲取用戶openid),snsapi_userinfo (彈出授權(quán)頁(yè)面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息)
state 否 重定向后會(huì)帶上state參數(shù),開發(fā)者可以填寫a-zA-Z0-9的參數(shù)值,最多128字節(jié)
#wechat_redirect 是 無論直接打開還是做頁(yè)面302重定向時(shí)候,必須帶此參數(shù)
其中getUrlConfig().wxAuthCallbackUrl返回的是不同環(huán)境下的一個(gè)域名地址
走getCodeByRedirectToWx方法會(huì)讓微信網(wǎng)頁(yè)彈出一個(gè)授權(quán)框,用戶授權(quán)之后,得到的是原地址后面加一個(gè)code參數(shù)
獲得code之后,可以調(diào)取后端接口,后端返回用戶的token,如果token為空則跳往用戶注冊(cè)頁(yè)面

浙公網(wǎng)安備 33010602011771號(hào)