使用token實現在有效期內APP自動登入功能

2021-09-04 04:18:06 字數 1869 閱讀 8102

這一步是需要使用者使用賬號和密碼進行登入去獲取,使用者如果登入成功,那麼後台返回乙個token及token的失效時間,及未來如果token失效之後重新整理token的令牌!

返回引數示例及說明:

//狀態位,ok表示成功

"status":"0",

//申請的有效token值

"token":"4a28d8516d42f4821e6d5782d1a79a7a",

//token的有效時間,單位為秒,這裡設定7天有效期(604800秒)

"expires_in":"604800",

//token過期情況下,用來重新整理access_token值,設定30天的有效期

"refresh_token":"8ab486662d50e6d51a5a5dd6a25c9a4b"

說明:繼續上一步中間插入乙個小細節,後台在登入成功之後,需要把token、expires_in、refresh_token(其他附加值:如裝置唯一編號、或其他密令…)儲存在資料庫和使用者關聯的表裡,便於未來使用者自動登入認證使用

此介面是對第乙個介面的一些彌補,token的過期時間原理上可以說是越短越安全,那麼存在的問題就是token有乙個過期時間,那麼過期之後是不可能讓使用者重新輸入使用者名稱和密碼來重新獲取token的,那樣完全違背了提公升體驗的初衷,相當於此功能是乙個累贅了;

在token過期的情況,我們可以使用儲存在手機本地的refresh_token去後台重新整理一下token,重新獲取一組令牌資訊,覆蓋掉以前儲存在手機上的令牌資訊,這也算是提公升了一點安全性,為避免以前的令牌資訊如果真落入別人之手;

"username":"13000000007",

//手機裝置的唯一值

"imei":"928347024892343",

//重新整理token的令牌

"refresh_token":"8ab486662d50e6d51a5a5dd6a25c9a4b"

返回引數示例及說明:

//狀態位,ok表示成功

"status":"0",

//申請的有效token值

"token":"4a28d8516d42f4821e6d5782d1a79a7a",

//token的有效時間,單位為秒,這裡設定7天有效期(604800秒)

"expires_in":"604800",

//token過期情況下,用來重新整理access_token值,設定30天的有效期

"refresh_token":"8ab486662d50e6d51a5a5dd6a25c9a4b"

從請求到響應之後的一系列處理流程為:

此介面相當而言算是請求頻率比較多的乙個介面,他對token進行認證成功和失敗有不同的處理方式;

"username":"13000000007",

//手機裝置的唯一值

"imei":"928347024892343",

//token認證令牌

"token":"4a28d8516d42f4821e6d5782d1a79a7a"

返回引數示例及說明:

"status":"0"//響應結果,成功

or"status":"1"//響應結果,token過期

說明:如果返回token過期,呼叫第二步的重新整理token令牌的介面去重新獲取令牌

jwt 私鑰 使用JWT實現Token認證

json web token的結構是什麼樣的 json web token由三部分組成,它們之間用圓點 連線。這三部分分別是 header payload signature 因此,乙個典型的jwt看起來是這個樣子的 xx.yyyyy.zzzzz 接下來,具體看一下每一部分 header heade...

LeetCode使用Python實現有效的數獨

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示例1 輸入 5 3 7 6 1 9 5 9 8 6 8 6 3 4 8 3 1 7 2 6 6 2 8 4 1 9 5 8 7 9 輸出...

LeetCode使用python實現有效的括號

左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。例項1 輸入 輸出 true例項2 輸入 輸出 true例項3 輸入 輸出 false例項4 輸入 輸出 false例項5 輸入 輸出 true實現思路 1 去除字串中所有的空白字串 2 遍歷字串 2.1 遇...