網(wǎng)站應(yīng)用微信登錄是基于OAuth2.0協(xié)議標(biāo)準(zhǔn)構(gòu)建的微信OAuth2.0授權(quán)登錄系統(tǒng)脏毯。
申請應(yīng)用及配置
在微信開發(fā)平臺上(open.weixin.qq.com)申請網(wǎng)站應(yīng)用
申請后融击,除了基本的appid及appsecret告匠,還需要設(shè)置授權(quán)回調(diào)域(很多人總是忘記設(shè)置這個)
授權(quán)
完成上面的步驟后,接下來就進入接入環(huán)節(jié)了
每個環(huán)節(jié)基本都有需要注意的點
第一步:請求 CODE
- redirect_uri 這里要對跳轉(zhuǎn)的uri進行urlEncode處理
- scope 的值 snsapi_login
第二步:通過 code
獲取 access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
這一步在后端進行,請求參數(shù)沒什么要注意的棉安, 但返回的信息很重要
{
.....,
openid,
unionid,
}
其中 unionid
在同一個開發(fā)主體下的不同應(yīng)用是一致的察蹲,如果開發(fā)主體需要旗下各應(yīng)用微信統(tǒng)一賬號聊浅,可用其作為唯一的標(biāo)示
第三步:通過 access_token
調(diào)用接口
調(diào)用的接口就根據(jù)業(yè)務(wù)需要了
實際上微信登錄后,一般請求以下接口:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
該接口會返回用戶在微信上的基本信息及 unionid
, 可在數(shù)據(jù)表驗證 unionid
霍转,根據(jù)是否存在荐绝,不存在則創(chuàng)建用戶,最終設(shè)置成自己網(wǎng)站的登陸態(tài)即可避消。
打通同一公司主體賬號
在微信開放平臺上低滩,可以綁定同一個公司主體的公眾號、網(wǎng)站登錄岩喷、移動端等各個應(yīng)用恕沫。 以A有限公司為例,在開放平臺完成各應(yīng)用綁定后纱意,同一用戶在A公司下的各個應(yīng)用下都有一致的 unionid
, 第三方賬號基于一致的unionid
婶溯,保證了同一用戶在A公司不同的應(yīng)用下使用微信登錄,都是同一賬號偷霉,提升了用戶體驗迄委。