1. 程式人生 > >iOS開發之登錄註冊系統

iOS開發之登錄註冊系統

gin 層級 form port 4.0 single 實現 用戶登錄 信息

一、登錄的種類劃分:

1、 普通登錄

2、使用獨立系統的登錄

3、單點登錄

4、 Oauth2.0登錄

詳細介紹如下:

1、普通登錄:

普通的登錄需求,要的就是一個登錄頁面,輸入賬號密碼,提交Form表單,後端查詢數據庫對應用戶名的hash密碼,匹配正確則把用戶記錄到Session,不正確則返回錯誤。

密碼hash: 就是存進數據庫的密碼是一串密文,密文是明文密碼通過不可逆算法得出的。

Session的原理:其實就是依賴了Cookie,通過Cookie記錄用戶憑證。

2、使用獨立系統的登錄

為避免token被竊取,被無限登錄網站系統。用戶輸入賬號密碼登錄成功之後,passport會通過帶著一個可逆加密的包含用戶信息的token,重定向到www.xxx.com提供的回調處理地址,然後進行解密,匹配正確,則登錄用戶。要註意的是,這裏的加密的信息需要包含一個時間戳,接收方需要認證這個時間戳,過期登錄失敗。

3、單點登錄:

單點登錄SSO(Single Sign On)需要實現的需求其實就是在站點A的登錄了,那麽用戶就自動可在站點B、站點C、站點E、F、G登錄。

三種實現方式如下:

<1>使用Cookie作為憑證媒介的方式

就是使用cookie作為媒介,存放用戶憑證。用戶登錄父應用之後,應用返回一個加密的cookie,當用戶訪問子應用的時候,攜帶上這個cookie,授權應用解密cookie並進行校驗,校驗通過則登錄當前用戶。

<2>通過JSONP的方式

用戶在父應用中登錄後,跟Session匹配的Cookie會存到客戶端中,當用戶需要登錄子應用的時候,授權應用訪問父應用提供的JSONP接口,並在請求中帶上父應用域名下的Cookie,父應用接收到請求,驗證用戶的登錄狀態,返回加密的信息,子應用通過解析返回來的加密信息來驗證用戶,如果通過驗證則登錄用戶。

<3>通過頁面重定向的方式

就是通過父應用和子應用來回重定向中進行通信,實現信息的安全傳遞。父應用提供一個GET方式的登錄接口,用戶通過子應用重定向連接的方式訪問這個接口,如果用戶還沒有登錄,則返回一個的登錄頁面,用戶輸入賬號密碼進行登錄。如果用戶已經登錄了,則生成加密的Token,並且重定向到子應用提供的驗證Token的接口,通過解密和校驗之後,子應用登錄當前用戶。

4、OAuth2.0登錄

現在很多App都使用第三方登錄,比如:「微信登錄」、「微博登錄」、「QQ登錄」,其實第三方登錄都是實現了OAuth2.0協議,第三方提供一個登錄入口,也就是第三方域名下的登錄頁面。主站需要登錄的時候,引導用戶重定向到第三方的登錄頁面,用戶輸入賬號密碼之後,登錄第三方系統,第三方系統匹配帳號成功之後,帶上一個code到主站的回調地址,主站接收到code,短時間內拿著code請求第三方提供獲取長期憑證的接口(因為code有一個比較短的過期時間),這個長期憑證叫access_token,獲取之後就把這個access_token存到數據庫中,請求一些第三方提供的API,需要用到這個access_token,因為這個token就是記錄用戶在第三方系統的一個身份憑證。一些系統,在獲取access_token的時候,還會返回一個副參數refresh_token,因為access_token是有過期時間的,一旦過期了,主站可以使用refresh_token請求第三方提供的接口獲取新的access_token以及新的refresh_token

二、登錄的幾種方式:

1、賬號(手機號/郵箱/用戶名)+密碼登錄

2、手機號+驗證碼登錄

3、第三方登錄

三、登錄流程的種類:

1、 需要登錄後才能繼續使用產品功能服務

2、不需要首先登錄可以使用產品或者產品的部分功能

四、註冊的幾種方式:

1、 郵箱註冊

2、手機號註冊

3、用戶名註冊

4、第三方註冊

五、註冊流程的種類:

1、同一頁面中完成註冊

2、按步驟分頁面完成註冊

六、登錄、註冊的註意事項:

1、 郵箱/手機號的占用判斷

2、 郵箱/手機號的合法性判斷

3、 登錄密碼的機制

4、 是否需要要確認密碼

5、 是否需要驗證碼

6、 驗證碼的重發機制

7、 登錄註冊過程中的異常狀態

8、 註冊完/登錄完一定要直接切回需要登錄的流程節點

七、登錄、註冊的層級劃分:

1、 用戶層面,面對的目標用戶群不同,對應的登錄註冊的方式也不同。

2、功能層面,就是確保整個登錄註冊模塊邏輯的合理性以及流程的通暢性。

3、 業務層面,不同的業務邏輯,需要的登錄註冊的方式、流程也不同;不同的功能模塊,對登錄節點的需求也不同。

4、產品層面,不同的產品類型,對登錄註冊模塊的需求不同。

iOS開發之登錄註冊系統