久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

微信用戶訪問小程序登錄過程的示例分析

這篇文章主要為大家展示了“微信用戶訪問小程序登錄過程的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“微信用戶訪問小程序登錄過程的示例分析”這篇文章吧。

創(chuàng)新互聯(lián)專注于西寧企業(yè)網(wǎng)站建設,響應式網(wǎng)站開發(fā),商城系統(tǒng)網(wǎng)站開發(fā)。西寧網(wǎng)站建設公司,為西寧等地區(qū)提供建站服務。全流程按需策劃設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

概述

當你開發(fā)完了一個小程序并部署上線后,某個微信用戶第一次訪問這個小程序的時候,會彈出一個授權(quán)界面,用戶可以選擇是否使用微信登錄,如果選擇是,則直接進入到小程序。當你第二次進入該小程序的時候,你會發(fā)現(xiàn)授權(quán)界面不會彈出來了,直接就進入小程序了。

微信提供小程序登錄流程圖

微信用戶訪問小程序登錄過程的示例分析

我們可以從登錄流程時序 找到這張圖。想完全看懂張圖,需要了解很多東西。我們先來看看微信提供的幾個接口。

小程序接口介紹

wx.login()

這個方法是小程序端發(fā)起的,如果是使用騰訊團隊推出的小程序組件化開發(fā)框架的wepy的話,偽代碼如下:

wepy.login()
   .then(res => {
   const code = res.code
 })

這樣子就可以從微信平臺獲取一個code,這個code是臨時登錄憑證,用于獲取openid的。

wx.request()

這個也是小程序端發(fā)起的,用于請求開發(fā)者服務器(也即是我們的應用服務器)上的接口,調(diào)用的偽代碼如下:

 wepy.request({
     url: `xxurl`,
     data: {
     //入?yún)?
     },
    })
    .then(res => {
     //從res中獲取應用服務器返回的數(shù)據(jù)
    })

獲取openid的接口

當某個開發(fā)主體開發(fā)了一個小程序后,當用戶訪問這個小程序的時候,微信平臺會為這個用戶分配一個openid。如下接口:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

這個微信接口一般是我們的應用服務器發(fā)起調(diào)用的,而不是小程序端發(fā)起的。

wx.getUserInfo

getUserInfo這個接口用于在微信平臺獲取用戶信息。注意,如果微信用戶第一次訪問小程序,是彈出一個授權(quán)界面的。當用戶授權(quán)后,getUserInfo才能調(diào)用并返回用戶數(shù)據(jù)。

這個四個接口在使用微信訪問小程序的時候都會用到的。

基于token保持會話和登錄認證

小程序雖然不支持cookie的機制,但是支持在header里設置token。

這個token是應用服務器生成的。

header: {
    'xxxxtoken': token,
 }

當小程序調(diào)用應用服務器接口的時候,必須帶上這個token,應用服務端則對這個token進行解析和認證。當然如果是第一次訪問小程序,只能由應用服務器先生成token。 筆者打算用偽代碼來表達使用token后,整個登錄的過程,因為用文字或者圖比較難表達。

const code = wx.login();
if (code ) {//code存在
//從小程序的本地中獲取toten
const token = wx.getStorageSync('xxxxxtoken')
   if (token ) {//小程序本地存有token,無需彈出授權(quán)界面
    //直接傳入code字段,調(diào)用應用服務器的驗證token的方法,如果校驗成功,需要返回用戶信息。
    const userinfo = wx.request(http://xxxxxValidateToken(code ));
    if (userinfo) {
      //說明登錄成功,直接進入小程序的主界面。
    }
   }
   else {
    //說明小程序本地沒有token,這個時候需要彈出授權(quán)界面,讓微信用戶決定是否訪問小程序,如果用戶選擇是的話。
    const weixinuserinfo = wx.getUserInfo();//會彈出授權(quán)界面,微信提供的
    if (weixinuserinfo ){
      //生成或者驗證token
      const userinfo = wx.request(http://xxxxxValidateToken(code ));

     const token = userinfo.getToken();
     //將token存儲到小程序本地
     wx.setStorageSync('xxxxxtoken', token )
    }
   }    
}

上面的偽代碼中,會調(diào)用應用服務器(我們的應用服務器)的

http://xxxxxValidateToken(code )

方法。這個方法的實現(xiàn)邏輯大概如下:

1、先驗證這個微信用戶是否存在,可以調(diào)用微信提供的jscode2session方法,該方法會返回一個openid。我們必須在業(yè)務代碼里,將這個openid保存到數(shù)據(jù)庫,并和userid關聯(lián)起來。

2、判斷是否是新的用戶,如果是,則生成token和生成新的一個用戶信息存儲到數(shù)據(jù)庫。如果不是新的用戶,則驗證token。

這個流程走完后,小程序就可以通過wx.request方法,帶上token,真正的訪問應用服務器的業(yè)務方法,獲取業(yè)務數(shù)據(jù)。

token的生成和校驗

見過有些公司是直接將userid和openid,加密后返回給小程序。也見過用userid和password加密后返回給小程序。如果是選擇第二種方式的話,驗證token的邏輯大概如下:

先解密,獲取userid和password,并根據(jù)userid從數(shù)據(jù)庫中獲取到用戶密碼,跟從token中解密出來的password進行比對,如果相等,則校驗通過。

以上是“微信用戶訪問小程序登錄過程的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標題:微信用戶訪問小程序登錄過程的示例分析
URL分享:http://sd-ha.com/article40/ihheho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、建站公司電子商務、定制網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設