iOS开发之登录注册系统
一、登錄的種類劃分:
1、 普通登錄
2、使用獨立系統(tǒng)的登錄
3、單點登錄
4、 Oauth2.0登錄
?
詳細介紹如下:
1、普通登錄:
普通的登錄需求,要的就是一個登錄頁面,輸入賬號密碼,提交Form表單,后端查詢數(shù)據(jù)庫對應(yīng)用戶名的hash密碼,匹配正確則把用戶記錄到Session,不正確則返回錯誤。
密碼hash: 就是存進數(shù)據(jù)庫的密碼是一串密文,密文是明文密碼通過不可逆算法得出的。
Session的原理:其實就是依賴了Cookie,通過Cookie記錄用戶憑證。
?
2、使用獨立系統(tǒng)的登錄:
為避免token被竊取,被無限登錄網(wǎng)站系統(tǒng)。用戶輸入賬號密碼登錄成功之后,passport會通過帶著一個可逆加密的包含用戶信息的token,重定向到www.xxx.com提供的回調(diào)處理地址,然后進行解密,匹配正確,則登錄用戶。要注意的是,這里的加密的信息需要包含一個時間戳,接收方需要認(rèn)證這個時間戳,過期登錄失敗。
?
3、單點登錄:
單點登錄SSO(Single Sign On),需要實現(xiàn)的需求其實就是在站點A的登錄了,那么用戶就自動可在站點B、站點C、站點E、F、G登錄。
三種實現(xiàn)方式如下:
<1>使用Cookie作為憑證媒介的方式
就是使用cookie作為媒介,存放用戶憑證。用戶登錄父應(yīng)用之后,應(yīng)用返回一個加密的cookie,當(dāng)用戶訪問子應(yīng)用的時候,攜帶上這個cookie,授權(quán)應(yīng)用解密cookie并進行校驗,校驗通過則登錄當(dāng)前用戶。
<2>通過JSONP的方式
用戶在父應(yīng)用中登錄后,跟Session匹配的Cookie會存到客戶端中,當(dāng)用戶需要登錄子應(yīng)用的時候,授權(quán)應(yīng)用訪問父應(yīng)用提供的JSONP接口,并在請求中帶上父應(yīng)用域名下的Cookie,父應(yīng)用接收到請求,驗證用戶的登錄狀態(tài),返回加密的信息,子應(yīng)用通過解析返回來的加密信息來驗證用戶,如果通過驗證則登錄用戶。
<3>通過頁面重定向的方式
就是通過父應(yīng)用和子應(yīng)用來回重定向中進行通信,實現(xiàn)信息的安全傳遞。父應(yīng)用提供一個GET方式的登錄接口,用戶通過子應(yīng)用重定向連接的方式訪問這個接口,如果用戶還沒有登錄,則返回一個的登錄頁面,用戶輸入賬號密碼進行登錄。如果用戶已經(jīng)登錄了,則生成加密的Token,并且重定向到子應(yīng)用提供的驗證Token的接口,通過解密和校驗之后,子應(yīng)用登錄當(dāng)前用戶。
?
4、OAuth2.0登錄:
現(xiàn)在很多App都使用第三方登錄,比如:「微信登錄」、「微博登錄」、「QQ登錄」,其實第三方登錄都是實現(xiàn)了OAuth2.0協(xié)議,第三方提供一個登錄入口,也就是第三方域名下的登錄頁面。主站需要登錄的時候,引導(dǎo)用戶重定向到第三方的登錄頁面,用戶輸入賬號密碼之后,登錄第三方系統(tǒng),第三方系統(tǒng)匹配帳號成功之后,帶上一個code到主站的回調(diào)地址,主站接收到code,短時間內(nèi)拿著code請求第三方提供獲取長期憑證的接口(因為code有一個比較短的過期時間),這個長期憑證叫access_token,獲取之后就把這個access_token存到數(shù)據(jù)庫中,請求一些第三方提供的API,需要用到這個access_token,因為這個token就是記錄用戶在第三方系統(tǒng)的一個身份憑證。一些系統(tǒng),在獲取access_token的時候,還會返回一個副參數(shù)refresh_token,因為access_token是有過期時間的,一旦過期了,主站可以使用refresh_token請求第三方提供的接口獲取新的access_token以及新的refresh_token。
?
二、登錄的幾種方式:
1、賬號(手機號/郵箱/用戶名)+密碼登錄
2、手機號+驗證碼登錄
3、第三方登錄
?
三、登錄流程的種類:
1、 需要登錄后才能繼續(xù)使用產(chǎn)品功能服務(wù)
2、不需要首先登錄可以使用產(chǎn)品或者產(chǎn)品的部分功能
?
四、注冊的幾種方式:
1、 郵箱注冊
2、手機號注冊
3、用戶名注冊
4、第三方注冊
?
五、注冊流程的種類:
1、同一頁面中完成注冊
2、按步驟分頁面完成注冊
?
六、登錄、注冊的注意事項:
1、 郵箱/手機號的占用判斷
2、 郵箱/手機號的合法性判斷
3、 登錄密碼的機制
4、 是否需要要確認(rèn)密碼
5、 是否需要驗證碼
6、 驗證碼的重發(fā)機制
7、 登錄注冊過程中的異常狀態(tài)
8、 注冊完/登錄完一定要直接切回需要登錄的流程節(jié)點
?
七、登錄、注冊的層級劃分:
1、 用戶層面,面對的目標(biāo)用戶群不同,對應(yīng)的登錄注冊的方式也不同。
2、功能層面,就是確保整個登錄注冊模塊邏輯的合理性以及流程的通暢性。
3、 業(yè)務(wù)層面,不同的業(yè)務(wù)邏輯,需要的登錄注冊的方式、流程也不同;不同的功能模塊,對登錄節(jié)點的需求也不同。
4、產(chǎn)品層面,不同的產(chǎn)品類型,對登錄注冊模塊的需求不同。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yuhao309/p/8836817.html
總結(jié)
以上是生活随笔為你收集整理的iOS开发之登录注册系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1808-Halloween tr
- 下一篇: java信息管理系统总结_java实现科