初識 Token

最簡單通用的權限校驗模型:

  1. 驗證是否合法。
  2. 驗證是否有效。
  3. 驗證 token 對應的權限。


    微信小程序中的令牌檢驗

我們藉助微信的權限驗證體系,不需要自己傳遞賬號密碼,相應的是小程序會爲每一個登錄的用戶生成一個 code 碼,需要將 code 碼傳向 getToken 接口。code 碼是去微信服務器換取用戶標識的憑證。我們在 getToken 中接收到 code 碼之後就需要想服務器發送一個請求,將 code 碼傳遞給微信服務器,獲取到 openid 和 session_key。openid 就是身份用戶的唯一標識。而 session_key 可以用來解密從服務器拿到的加密信息。之所以要解密,是因爲裏面包含一個變量,叫做 unionid,unionid 也是用戶的唯一標識,但是與 openid 的區別是:不同微信小程序同一個賬戶的 openid 不同,而 unionid 相同。unionid 經常用於不同小程序之間的關聯。

我們接下來需要存儲 openid,由於該標識不具有時效期,安全性差,不能將 openid 直接返回到小程序。解決方法就是生成一個有時效期的 Token 令牌,將令牌返回至客戶端。下一次用戶訪問時,需要攜帶令牌,間接地拿到 openid。

如果把 openid 和 Token 令牌全都記錄在數據庫裏,每次訪問 API 都需要攜帶,每次查詢數據庫會增大數據庫的壓力,爲了減少數據庫的壓力,我們可以用數據庫存儲 openid,而 Token 令牌則緩存到本地,可以節約數據庫資源,也可以加快用戶的訪問速度。但是我們要注意,緩存的維護十分困難,需要合理的使用緩存。

攜帶 Token 令牌訪問 API

在有了之前的架構之後,訪問下單接口的 API 時就非常容易了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章