1. 程式人生 > >APP利用token機制進行身份認證(理解token機制+簡單Java程式碼實現)

APP利用token機制進行身份認證(理解token機制+簡單Java程式碼實現)

什麼是token

token的意思是令牌,想象一下用過的qq令牌,是來自(騰訊)服務端生成的一串字元作為客戶端(我們自己)進行請求的一個標識。比如說:改qq密碼。而這裡我們是自己開發App,我們的使用者用token請求登入,我們對他進行身份認證。

當用戶第一次登入後,服務端生成一個token給使用者,使用者下次帶著token請求幹這幹那就行,不需要再帶密碼。想象一下qq、微信每次開啟都自動登入了,就是這樣。

基於token機制的身份認證

流程你先自己想一下:大概是某人第一次或往後每次重新登入,給某人一個token令牌,你保管好,下次帶上令牌出入城門。

流程:

  1. 客戶端使用使用者名稱和密碼請求登入。
  2. 服務端收到請求,驗證使用者名稱和密碼。服務端收到請求,驗證使用者名稱和密碼。
  3. 驗證成功後,服務端會生成一個token,然後把這個token傳送給客戶端。驗證成功後,服務端會生成一個token,然後把這個token傳送給客戶端。
  4. 客戶端收到token後把它儲存起來,可以放在cookie或者Local Storage(本地儲存)裡。客戶端收到token後把它儲存起來,可以放在cookie或者Local Storage(本地儲存)裡。
  5. 客戶端每次向服務端傳送請求的時候都需要帶上服務端發給的token。客戶端每次向服務端傳送請求的時候都需要帶上服務端發給的token。
  6. 服務端收到請求,然後去驗證客戶端請求裡面帶著token,如果驗證成功,就向客戶端返回請求的資料。服務端收到請求,然後去驗證客戶端請求裡面帶著token,如果驗證成功,就向客戶端返回請求的資料。

以上是token機制的理解,下面重點講APP開發如何利用token機制進行身份認證

使用者在登入APP時,APP端會發送加密的使用者名稱和密碼到伺服器,伺服器驗證使用者名稱和密碼,如果驗證成功,就會生成相應位數的字元產作為token儲存到伺服器中,並且將該token返回給APP端。

以後APP再次請求時,凡是需要驗證的地方都要帶上該token,然後伺服器端驗證token,成功返回所需要的結果,失敗返回錯誤資訊,讓使用者重新登入。其中,伺服器上會給token設定一個有效期,每次APP請求的時候都驗證token和有效期。

這段描述的挺好的,大體思路就是這樣,實際操作的時候略有不同,程式碼總可以自由發揮嘛。

程式碼整理後補發