android令牌
1. AndroidToken
在計算機身份認證纖拿大中是令牌(臨時)的意思,在詞法分析中是標記的意思。
token其實說的更通俗點可以叫暗號,在一些數據傳輸之前,要先進行暗號的核對,不同的暗號被授權不同的數據操作。例如在USB1.1協議中定義了4類數據包:token包、data包、handshake包和special包。主機和USB設備之毀豎間連續數據的交換可以分為三個階段,第一個階段由主機發送token包,不同的token包敏宏內容不一樣(暗號不一樣)可以告訴設備做不同的工作,第二個階段發送data包,第三個階段由設備返回一個handshake包。
**(網路上)基於 Token 的身份驗證方法 **
使用基於 Token 的身份驗證方法,在服務端不需要存儲用戶的登錄記錄。大概的流程是這樣的
2.登錄之後,我們要返回token,讓安卓或者ios去保存這個token,以後每次操作都攜帶token去請求介面。
3.接下來就是我們要用它傳給我們的token去對比,如果符合,那就正常返回數據,否則就返回一個標識,告訴app說這個token不符合,需要重新登錄。
在開發中我的需求是用戶第一次打開我們的APP的時候就獲取到一個token,然後保存到本地,這樣在下一次打開後我們就能根據token來判斷用戶的信息(如果用戶注冊,則把用戶信息和token在後台綁定)
** 1:首先獲取token(這里是當打開APP的時候的一個Activity中)**
** 加密解密的類(由於是在網路上傳送數據,安全性很重要)**
** 參數構造類 **
** 保存token的類 **
** 保存token的工具類 **
** 寫入到文件中的一個工具類 **
** 其中的BaseResult **
2. Android網路請求知識(三)授權,TCP/IP,HTTPS建立過程
由身份或持有的令牌確認享有的許可權,登錄過程實質上的目的也是為了確認許可權。
Cookie是客戶端給伺服器用的,setCookie是伺服器給客戶端用的。cookie由伺服器處理,客戶端負責存儲
客戶端發送cookie:賬戶和密碼
服務端收到後確認登錄setCookie:sessionID=1,記下sessionID
客戶端收到sessionID後記錄,以後請求服務端帶上對比記錄下sessionID,說明已經登錄
會話管理:登錄狀態,購物車
個性化:用戶偏好,主題
Tracking:分析用戶行為
XXS:跨腳本攻擊,及使用JavaScript拿到瀏覽器的cookie之後,發送到自己的網站,以這種方式來盜用用戶Cookie。Server在發送Cookie時,敏感的Cookie加上HttpOnly,這樣Cookie只能用於http請求,不能被JavaScript調用
XSRF:跨站請求偽造。Referer 從哪個網站跳轉過來
兩種方式:Basic和Bearer
首先第三方網站向授權網站申請第三方授權合作,拿到授權方頒發的client_id和client_secret(一般都是appid+appkey的方式)。
在這就過程中申請的client_secret是伺服器持有的,安全起見不能給客戶端,用服務端去和授權方獲取用戶信息,再傳給客戶端,包括④,⑤的請求過程也是需要加密的。這才是標準的授權過程。
有了access_token之後,就可以向授權方發送請求來獲取用戶信息
步驟分析就是上面的內容,這里把第4,6,8請求的參數分析一下
第④步參數:
response_type:指授權類型,必選,這里填固定值『code』
client_id:指客戶端id,必選,這里填在平台報備時獲取的appid
redirect_uri:指重定向URI,可選
scope:指申請的許可權范圍,可選
state:指客戶端當前狀態,可選,若填了,則認證伺服器會原樣返回該值
第⑥步參數:
grant_type:指使用哪種授權模式,必選,這里填固定值『authorization_code』
code:指從第⑤步獲取的code,必選
redirect_uri:指重定向URI,必選,這個值需要和第④步中的redirect_uri保持一致
client_id:指客戶端id,必選,這里填在平台報備時獲取的appid
client_secret:指客戶端密鑰,必選,這里填在平台報備時獲取的appkey
第⑧步參數:
access_token:指訪問令牌,必選,這里填第⑦步獲取的access_token
token_type:指令牌類型,必選,大小寫不敏感,bearer類型 / mac類型
expires_in:指過期時間,單位秒,當其他地方已設置過期時間,此處可省略該參數
refresh_token:指更新令牌,可選,用即將過期token換取新token
scope:指許可權范圍,可選,第④步中若已申請過某許可權,此處可省略該參數
我們在上面的第八步中會有refresh_token的參數,這個在實際操作中也比較常見
有時候我們在自己的項目中,將登陸和授權設計成類似OAuth2的過程,不過去掉Authorization code。登陸成功返回access_token,然後客戶端再請求時,帶上access_token。
我們常常會說到TCP/IP,那到底是什麼呢。這就需要講到網路分層模型。TCP在傳輸層,IP在網路層。那為什麼需要分層?因為網路不穩定,導致需要重傳的問題。為了提高傳輸效率我們就需要分塊,在傳輸層中就會進行分塊。TCP還有兩個重要的內容就是三次握手,四次分手。
HTTPS 協議是由 HTTP 加上TLS/SSL協議構建的可進行加密傳輸、身份認證的網路協議,主要通過數字證書、加密演算法、非對稱密鑰等技術完成互聯網數據傳輸加密,實現互聯網傳輸安全保護
1.客戶端通過發送Client Hello報文開始SSL通信。報文中包含客戶端支持的SSL的指定版本、加密組件列表(所使用的加密演算法及密鑰長度),客戶端隨機數,hash演算法。
2.伺服器可進行SSL通信時,會以Server Hello報文作為應答。和客戶端一樣,在報文中包含SSL版本以及加密組件,服務端隨機數。伺服器的加密組件內容是從接收到客戶端加密組件內篩選出來的。
3.之後伺服器發送Certificate報文。報文中包含公開密鑰證書。一般實際有三層證書嵌套,其實像下面圖二直接用根證書機構簽名也是可以的,但是一般根證書機構比較忙,需要類似中介的證書機構來幫助。
4.最後伺服器發送Server Hello Done報文通知客戶端,最初階段的SSL握手協商部分結束。
5.SSL第一次握手結束後,客戶端以Client Key Exchange報文作為回應。報文中包含通信加密中使用的一種被稱為Pre-master secret的隨機密碼串。該報文已用步驟3中的公開密鑰進行加密。
6.接著客戶端繼續發送Change Cipher Spec報文。該報文會提示伺服器,在此報文之後的通信會採用Pre-master secret密鑰加密。
7.客戶端發送Finished報文。該報文包含連接至今全部報文的整體校驗值。這次握手協商是否能夠成功,要以伺服器是否能夠正確解密報文作為判定標准。
8.伺服器同樣發送Change Cipher Spec報文。
9.伺服器同樣發送Finished報文。
10.伺服器和客戶端的Finished報文交換完畢之後,SSL連接就算建立完成。當然,通信會受到SSL的保護。從此處開始進行應用層協議的通信,即發送HTTP響應。
11.應用層協議通信,即發送HTTP響應。
12.最後由客戶端斷開連接。斷開連接時,發送close_notify報文。這步之後再發送TCP FIN報文來關閉與TCP的通信。
利用客戶端隨機數,服務端隨機數,per-master secret隨機數生成master secret,再生成客戶端加密密鑰,服務端加密密鑰,客戶端MAC secert,服務端MAC secert。MAC secert用於做報文摘要,這樣能夠查知報文是否遭到篡改,從而保護報文的完整性。
Android網路請求知識(一)HTTP基礎概念
Android網路請求知識(二)對稱和非對稱加密、數字簽名,Hash,Base64編碼
Android網路請求知識(三)授權,TCP/IP,HTTPS建立過程
3. 安卓手機如何安裝steam令牌
1、首先在手機端登錄steam賬號,登錄後點擊左上方的菜單欄。
4. 安卓手機如何安裝steam令牌
每次登錄是steam的時候,都需要驗證,一般都是用電子郵箱驗證的,但如果開啟了手機令牌,就可以用手機令牌驗證登錄了,下面教大家:新手如何開啟ste am手機令牌?
1/7 分步閱讀
先在電腦上登錄steam,登錄成功後,點擊steam,在彈出的選項中點擊設置。
查看剩餘1張圖
2/7
進入設置界面,點擊管理steam令牌賬戶安全設置。
3/7
進入管理steam令牌界面,勾選從我手機中的steam應用獲得令牌認證碼。
頁面彈出移動steam安裝提示,先點擊完成。
查看剩餘1張圖
4/7
頁面跳轉,找到聯系信息模塊,點擊添加手機號碼,綁定自己的手機號碼,最後點擊完成。
5/7
在手機上安裝steam,打開steam,點擊頁面左上角的三橫圖標。
頁面彈出選項,點擊steam令牌。
查看剩餘1張圖
6/7
頁面彈出提示,點擊添加驗證器。
輸入手機收到的驗證碼,點擊提交。
查看剩餘1張圖
7/7
頁面會彈出一個救援代碼,這個代碼一定要記住,等待一會兒,點擊頁面最下方的完成,這樣手機令牌就設置完成了。
設置完成之後,頁面自動跳轉,並且彈出steam手機令牌碼,這個令牌碼,就是驗證登錄的驗證碼了。