日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android客户端和服务端如何使用Token和Session

發布時間:2025/6/15 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android客户端和服务端如何使用Token和Session 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于初學者來說,對Token和Session的使用難免會限于困境,開發過程中知道有這個東西,但卻不知道為什么要用他?更不知道其原理,今天我就帶大家一起分析分析這東西。

? ? 一、我們先解釋一下他的含義:

? ? 1、Token的引入:Token是在客戶端頻繁向服務端請求數據,服務端頻繁的去數據庫查詢用戶名和密碼并進行對比,判斷用戶名和密碼正確與否,并作出相應提示,在這樣的背景下,Token便應運而生。

? ? 2、Token的定義:Token是服務端生成的一串字符串,以作客戶端進行請求的一個令牌,當第一次登錄后,服務器生成一個Token便將此Token返回給客戶端,以后客戶端只需帶上這個Token前來請求數據即可,無需再次帶上用戶名和密碼。

? ? 3、使用Token的目的:Token的目的是為了減輕服務器的壓力,減少頻繁的查詢數據庫,使服務器更加健壯。

? ? 了解了Token的意義后,我們就更明確的知道為什么要用他了。

? ? 二、如何使用Token?

? ? 這是本文的重點,在這里我就介紹常用的兩種方式。

? ? 1、用設備號/設備mac地址作為Token(推薦)

? ? 客戶端:客戶端在登錄的時候獲取設備的設備號/mac地址,并將其作為參數傳遞到服務端。

? ? 服務端:服務端接收到該參數后,便用一個變量來接收同時將其作為Token保存在數據庫,并將該Token設置到session中,客戶端每次請求的時候都要統一攔截,并將客戶端傳遞的token和服務器端session中的token進行對比,如果相同則放行,不同則拒絕。

? ? 分析:此刻客戶端和服務器端就統一了一個唯一的標識Token,而且保證了每一個設備擁有了一個唯一的會話。該方法的缺點是客戶端需要帶設備號/mac地址作為參數傳遞,而且服務器端還需要保存;優點是客戶端不需重新登錄,只要登錄一次以后一直可以使用,至于超時的問題是有服務器這邊來處理,如何處理?若服務器的Token超時后,服務器只需將客戶端傳遞的Token向數據庫中查詢,同時并賦值給變量Token,如此,Token的超時又重新計時

? ? 2、用session值作為Token

? ? 客戶端:客戶端只需攜帶用戶名和密碼登陸即可。

? ? 客戶端:客戶端接收到用戶名和密碼后并判斷,如果正確了就將本地獲取sessionID作為Token返回給客戶端,客戶端以后只需帶上請求數據即可。

? ? 分析:這種方式使用的好處是方便,不用存儲數據,但是缺點就是當session過期后,客戶端必須重新登錄才能進行訪問數據

? ? 三、使用過程中出現的問題以及解決方案?

? ? 剛才我們輕松介紹了Token的兩種使用方式,但是在使用過程中我們還出現各種問題,Token第一種方法中我們隱藏了一個在網絡不好或者并發請求時會導致多次重復提交數據的問題。

? ? 該問題的解決方案:將session和Token套用,如此便可解決,如何套用呢?請看這段解釋:

? ? ?這就是解決重復提交的方案。

? ? ?總結:以上是個人對開發中使用Token和session的一點總結,如有敘述不當之處請指正,我將及時改正并感謝,我知道還有更多更好的使用方式,我在這里只是拋磚引玉,希望大家將您的使用方式提出來,我們一起討論,學習,一起進步,同時也為像我一樣對這方面理解薄弱的朋友提供點幫助,謝謝。

總結

以上是生活随笔為你收集整理的Android客户端和服务端如何使用Token和Session的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。