微信授權登錄-微信公眾號和PC端網站


https://blog.csdn.net/qq_34664239/article/details/79107529

一、微信公眾號授權登錄——微信公眾平台

微信授權登錄,並調用后台接口,獲取用戶信息
1.網頁授權回調域名
首先要在公眾平台官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息”的配置選項中,修改授權回調域名

網頁授權

2.關於網頁授權的兩種scope的區別說明
  • 1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,並且是靜默授權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)

  • 2、以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,並且由於用戶同意過,所以無須關注,就可在授權后獲取該用戶的基本信息。(H5頁面微信授權獲取用戶,注冊成為用戶id,可以做點贊關注等功能)

  • 3、用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號產生消息交互或關注后事件推送后,才能根據用戶OpenID來獲取用戶基本信息。這個接口,包括其他微信接口,都是需要該用戶(即openid)關注了公眾號后,才能調用成功的。

3.關於UnionID機制
  • 1、請注意,網頁授權獲取用戶基本信息也遵循UnionID機制。即如果開發者有在多個公眾號,或在公眾號、移動應用之間統一用戶帳號的需求,需要前往微信開放平台(open.weixin.qq.com)綁定公眾號后,才可利用UnionID機制來滿足上述需求。
  • 2、UnionID機制的作用說明:如果開發者擁有多個移動應用、網站應用和公眾帳號,可通過獲取用戶基本信息中的unionid來區分用戶的唯一性,因為同一用戶,對同一個微信開放平台下的不同應用(移動應用、網站應用和公眾帳號),unionid是相同的。
具體而言,網頁授權流程分為四步
  • 1、引導用戶進入授權頁面同意授權,獲取code

  • 2、通過code換取網頁授權access_token(與基礎支持中的access_token不同)

  • 3、如果需要,開發者可以刷新網頁授權access_token,避免過期

  • 4、通過網頁授權access_token和openid獲取用戶基本信息(支持UnionID機制)

前端:用戶同意授權,獲取code

var Jumpurl = encodeURIComponent(window.location.href);
var appid = "wx3d15e2600fa71eee3";
window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + 
appid + '&redirect_uri=' + Jumpurl + 
'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
  • 如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE
  • 將code傳給后台,繼續下一步驟

微信公眾官方文檔:鏈接

二、PC端微信授權登錄——微信開放平台

接入網站應用開發,為用戶提供了微信登錄功能(測試也可以通過審核,主要是網站信息登記表掃描件,網址改一下就行)
有兩種方式進行微信二維碼掃描登錄

//第一種:直接跳轉一個鏈接頁面
通過在PC端直接打開以下鏈接:
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
//第二種:支持網站將微信登錄二維碼內嵌到自己頁面中,用戶使用微信掃碼授權后通過JS將code返回給網站
<div id="wxqr" class="wxqr"></div>

//步驟1:在頁面中先引入如下JS文件(支持https):
http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js

//步驟2:在需要使用微信登錄的地方實例以下JS對象:
var obj = new WxLogin({
    id:"wxqr", 
    appid: "wxb9e2238ff05c7bd7", 
    scope: "snsapi_login",
    redirect_uri: "https://test.2or3m.com/newWeb/binding_phone.html",
    state: "2or3m",
    style: "white"
});

 

 

用戶允許授權后,將會重定向到redirect_uri的網址上,並且帶上code和state參數
后台拿到code再進行接口的調用獲取用戶信息

微信開放平台官方文檔:鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM