iOS開發(fā)济欢,讓數(shù)據(jù)更安全的幾個加密方式

其他參考: iOS開發(fā),讓數(shù)據(jù)更安全的幾個加密方式

本文摘自:iOS登錄及token的業(yè)務(wù)邏輯

如果是即時通信類:長連接碾褂。
那如何保證服務(wù)器跟客戶端保持長連接狀態(tài)?
答:"心跳包" 用來檢測用戶是否在線!用來做長連接!

登錄的網(wǎng)絡(luò)請求方式一般是http請求(http請求是短連接)——只要登錄成功之后,服務(wù)器就會和 app 斷開連接.
http:是短連接.
http:短連接使用token 機制來驗證用戶安全性

token是指OAuth的accessToken和refreshToken

自動登錄

①最簡單的:直存user password,拿來做示例程序可行暂殖。
②次簡單的:本地預(yù)存token价匠,一般要求不高的產(chǎn)品足夠了。
③標(biāo)準(zhǔn)的:帶時效檢測的token呛每,過時更換token踩窖。
④較安全的:多層token,比如上面Jeff Yang說的晨横,兩層的token毙石。我還見過3層的,但基本原理差不多颓遏,其實就是更復(fù)雜的機制獲取token來保證安全性徐矩。


一般的實現(xiàn)方法是,客戶端在第一次登錄后叁幢,服務(wù)端會同時返回一個access token和refresh token滤灯。
access token有失效期,相對較短曼玩,用于每次和服務(wù)端通信的身份校驗鳞骤。
(可以看出:access token使用非常頻繁,在網(wǎng)絡(luò)中頻繁傳輸會增大被盜取的可能性黍判,容易被截獲豫尽,所以有效時長應(yīng)該較短)

refresh token用于access token失效后換取新的access token時的校驗,成功后返回新的access token和新的refresh token顷帖。
(可以看出:refresh token只有在更新access token時才會在網(wǎng)絡(luò)中傳輸一次美旧,相對安全)

服務(wù)器如何判斷當(dāng)前用戶是否登錄?

token 值的生成與獲取:
當(dāng)用戶首次登錄成功之后, 服務(wù)器端就會根據(jù)用戶的信息(賬號/密碼/身份認(rèn)證機制(電話號/身份證號/支付寶賬號/銀行卡信息)...)生成一個唯一性的 token 值,來用于標(biāo)識用戶身份的值贬墩,并將這個token值返回給客戶端榴嗅。
①服務(wù)器對token值的處理:
* 會在服務(wù)器保存token值(保存在數(shù)據(jù)庫中)
* 將這個token值返回給客戶端.

②客戶端拿到 token 值之后,對token值的處理,一般為將其保存下來陶舞,而保存的位置一般為下面兩個位置 :
1. 將 token 保存在 cookie 中;
2.將 token 保存在沙盒中,作為一個公共參數(shù)傳遞.

token 值: 登錄令牌! 用來判斷當(dāng)前用戶的登錄狀態(tài)!

趨勢: 登錄成功后的所有的網(wǎng)絡(luò)接口基本都會要求帶 token 值這個參數(shù).但是呢,這個參數(shù)對于有些接口來說不是必要的參數(shù).

如登錄成功后嗽测,客戶端再發(fā)送的網(wǎng)絡(luò)請求,就會將這個 token 值附帶到參數(shù)中(公共參數(shù))發(fā)送給服務(wù)器肿孵。服務(wù)器接收到客戶端的請求之后唠粥,會取出token值與保存在服務(wù)器本地(數(shù)據(jù)庫)中的token值做對比!
①如果兩個 token 值相同 :說明用戶登錄成功過!當(dāng)前用戶處于登錄狀態(tài)!
②如果沒有這個 token 值, 說明沒有登錄成功.
③如果 token 值不同: 說明原來的登錄信息已經(jīng)失效,讓用戶重新登錄.

token 值失效問題:

1、token的有效時間:
①如果 app 是新聞類/游戲類/聊天類等需要長時間用戶粘性的. 一般可以設(shè)置1年的有效時間!
②如果 app 是 支付類/銀行類的. 一般token只得有效時間比較短: 15分鐘左右!
所以停做,如果超過有效時間晤愧,則token自動失效。

2雅宾、token 值用來做設(shè)備唯一性登錄判斷!
每次登錄之后,無論用戶密碼是否改變,只要調(diào)用登錄接口并且登錄成功,都會在服務(wù)器生成新的token值,原來的token值就會失效!
典型的 app : 打車軟件類
拓展: 多臺設(shè)備同時登錄. 設(shè)備唯一性登錄!
比如說QQ:允許在①電腦客戶端登錄养涮,②手機客戶端登錄, ③網(wǎng)頁端登錄。如果超出這三個端眉抬,想要在另外一個相同的端登錄(比如已經(jīng)登錄了手機客戶端了贯吓,還要在另一臺手機客戶端上登錄),那么我們需要使對應(yīng)的端的token失效蜀变,來保證一個賬號一個端只登錄一次悄谐。

問:具體我們怎么做呢?
答:我們可以根據(jù)不同登錄端库北,設(shè)置不同token爬舰。登錄的時候,根據(jù)該登錄端寒瓦,來檢測token 是否過期情屹。 根據(jù)登錄的數(shù)量 可以判斷最大支持多少個設(shè)備同時登錄
如果允許多臺設(shè)備同時登錄  ,并且可以設(shè)置最大的登錄數(shù)量的時候杂腰。


二垃你、token的高級用法

2.1 token值失效

token值失效! ---- 數(shù)據(jù)同步有關(guān)!
密碼可以隨時修改! ----- 當(dāng)修改了密碼之后,原來的 token 值就會失效, 服務(wù)器會返回一個新的 token.

數(shù)據(jù)同步 : pc 端/網(wǎng)頁瀏覽 --- 和 app 端可以同時登陸!

例子:實現(xiàn)我們在手機和筆記本上同時QQ在線,但是我們在手機上修改了QQ的密碼喂很。那么筆記本會是什么樣子的呢惜颇?
1、筆記本還是在登陸狀態(tài)少辣,但是在我們退出后再次登錄時無法實現(xiàn)自動登錄>>我們在自動登錄時判斷登錄狀態(tài)凌摄,同時判斷token只是否改變。
2漓帅、在我們進(jìn)行網(wǎng)絡(luò)請求時锨亏,就出現(xiàn)問題提示我們密碼已修改——這說明我們的網(wǎng)絡(luò)請求使用到token值。
判斷用戶的登錄狀態(tài): 不僅判斷是否登錄成功, 還要判斷密碼(token值)是否改變,是否需要用戶再次登錄,是否需要重置密碼!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忙干,一起剝皮案震驚了整個濱河市屯伞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豪直,老刑警劉巖劣摇,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弓乙,居然都是意外死亡末融,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門暇韧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勾习,“玉大人,你說我怎么就攤上這事懈玻∏缮簦” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長艺栈。 經(jīng)常有香客問我英岭,道長,這世上最難降的妖魔是什么湿右? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任诅妹,我火速辦了婚禮,結(jié)果婚禮上毅人,老公的妹妹穿的比我還像新娘吭狡。我一直安慰自己,他們只是感情好丈莺,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布划煮。 她就那樣靜靜地躺著,像睡著了一般缔俄。 火紅的嫁衣襯著肌膚如雪般此。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天牵现,我揣著相機與錄音铐懊,去河邊找鬼。 笑死瞎疼,一個胖子當(dāng)著我的面吹牛科乎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贼急,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼茅茂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了太抓?” 一聲冷哼從身側(cè)響起空闲,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎走敌,沒想到半個月后碴倾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡掉丽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年跌榔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捶障。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡僧须,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项炼,到底是詐尸還是另有隱情担平,我是刑警寧澤示绊,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站暂论,受9級特大地震影響面褐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜空另,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一盆耽、第九天 我趴在偏房一處隱蔽的房頂上張望蹋砚。 院中可真熱鬧扼菠,春花似錦、人聲如沸坝咐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墨坚。三九已至秧饮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泽篮,已是汗流浹背盗尸。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帽撑,地道東北人泼各。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像亏拉,于是被迫代替她去往敵國和親扣蜻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容