ajax 實作微信網頁授權登入的方法介紹

php中世界最好的语言
發布: 2018-03-06 11:40:38
原創
2848 人瀏覽過

微信網頁授權登入是非常常用的功能,為了幫助大家學習。這篇文章主要介紹了ajax 實現微信網頁授權登入的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

專案背景

因為專案採用前後端完全分離方案,所以,無法使用常規的微信授權登入作法,需要採用ajax 實現微信授權登入。

需求分析

因為本身就是一個phper ,所以,微信開發採用的是 EasyWeChat ,所以實作的方式是基於EW的。

其實實作這件事也很麻煩,在實作之前,我們需要先了解微信授權的整個流程。

  1. 引導使用者進入授權頁面同意授權,取得code

  2. 透過code換取網頁授權access_token(與基礎支援中的access_token不同)

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

  4. 透過網頁授權access_token和openid獲取使用者基本資訊(支援UnionID機制)

其實說白了,前端只需要乾一件事兒,引導用戶發起微信授權頁面,然後得到code,然後跳到當前頁面,然後再請求後端換取使用者以及其他相關資訊。

功能實作

引導使用者喚起微信授權確認頁面

這裡需要我們做兩件事,第一去配置jsapi域名,第二配置微信網頁授權的回調域名

構建微信授權的url "https://open.weixin.qq.com/connect/oauth2/authorize?appid =" + appId + "&redirect_uri=" + location.href.split('#')[0] + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 我們從連線中看到有兩個變數,appId,以及redirect_uri。回呼過來的URL 會攜帶兩個參數,第一個是code,另一個就是state。資訊。

    ##
    function getUrlParam(name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      var r = window.location.search.substr(1).match(reg);
      if (r != null) return unescape(r[2]);
      return null;
    }
    function wxLogin(callback) {
      var appId = 'xxxxxxxxxxxxxxxxxxx';
      var oauth_url = 'xxxxxxxxxxxxxxxxxxx/oauth';
      var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + location.href.split('#')[0] + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"
      var code = getUrlParam("code");
      if (!code) {
        window.location = url;
      } else {
        $.ajax({
          type: 'GET',
          url: oauth_url,
          dataType: 'json',
          data: {
            code: code
          },
          success: function (data) {
            if (data.code === 200) {
              callback(data.data)
            }
          },
          error: function (error) {
            throw new Error(error)
          }
        })
      }
    登入後複製
  1. 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持php中文網。
  2. ##相關推薦:
  3. 微信網頁授權登入android 失敗!

以上是ajax 實作微信網頁授權登入的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!