首先token是乙個怎麼樣的東西,token存在的意義又在**?學過php或是其他web開發的人都知道乙個東西叫session和cookie,這些東西可以在伺服器或是本地儲存一些東西,比如說登入狀態,當使用者登入後可以通過session或是cookie在本地儲存一段時間的登入狀態,在這段時間內,使用者再度登入的時候就不用再輸入使用者名稱和密碼了,但是過了一段時間後,使用者需要再次進行身份認證,這樣一來的話,一方面節省了很多操作的步驟提公升了操作體驗,同時也節省了很多伺服器請求,提高了伺服器效能,同時也保證了一定的安全性。
token的定義:token是服務端生成的一串字串,以作客戶端進行請求的乙個令牌,當第一次登入後,伺服器生成乙個token便將此token返回給客戶端,以後客戶端只需帶上這個token前來請求資料即可,無需再次帶上使用者名稱和密碼。
了解了token的意義後,我們就更明確的知道為什麼要用他了。
1、用裝置號/裝置mac位址作為token(推薦)
客戶端:客戶端在登入的時候獲取裝置的裝置號/mac位址,並將其作為引數傳遞到服務端。
服務端:服務端接收到該引數後,便用乙個變數來接收同時將其作為token儲存在資料庫,並將該token設定到session中,客戶端每次請求的時候都要統一攔截,並將客戶端傳遞的token和伺服器端session中的token進行對比,如果相同則放行,不同則拒絕。
分析:此刻客戶端和伺服器端就統一了乙個唯一的標識token,而且保證了每乙個裝置擁有了乙個唯一的會話。該方法的缺點是客戶端需要帶裝置號/mac位址作為引數傳遞,而且伺服器端還需要儲存;優點是客戶端不需重新登入,只要登入一次以後一直可以使用,至於超時的問題是有伺服器這邊來處理,如何處理?若伺服器的token超時後,伺服器只需將客戶端傳遞的token向資料庫中查詢,同時並賦值給變數token,如此,token的超時又重新計時。
2、用session值作為toke
客戶端:客戶端只需攜帶使用者名稱和密碼登陸即可。
客戶端:客戶端接收到使用者名稱和密碼後並判斷,如果正確了就將本地獲取sessionid作為token返回給客戶端,客戶端以後只需帶上請求資料即可。
Grpc 在Android中的配置
grpc是一種在移動端使用很方便 快捷的資料傳遞方式 以下是grpc在android中的一些只要的配置方式 首先是需要匯入以下的依賴 在build.gradle中新增如下節點 plugin com.google.protobuf protobuf plugins generateprototasks...
AI在Android中的應用
翻譯 信不信由你,我們當前正生活在乙個技術革命的年代。我們曾經像做夢一樣的技術 人工智慧 artificial intelligence 在世界的每乙個角落,對商業的成功起著必不可少的作用。在基於語音的搜尋出現之前,對使用者來說,基於ai的導航是很難做到的。但現在,諸如執行語音命令和與客戶服務進行通...
django中token的簽發
pip install djangorestframework jwt 2.簽發token 匯入jwt from rest framework jwt.serializers import jwt payload handler from rest framework jwt.serializers...