簡要:隨着電商的不斷髮展,APP也層次不窮,隨着科技的發展主要登陸形式(微信、QQ、帳號/密碼);爲此向你們分享一下"app與php後臺接口登陸認證、驗證"想法和作法;但願可以幫助困惑的夥伴們,若是有不對或者好的建議告知下; ~!
粗略分析:登陸可分爲三個階段(登陸驗證、登陸持續、退出登陸);登陸驗證指客戶端提供帳號/密碼(或第三方平臺(微信、qq)獲取openid/unionid)向服務器提出登陸請求,服務器應答請求判斷可否登陸並返回相應數據;登陸持續指客戶端登陸後, 服務器可以分辨出已登陸的客戶端,併爲其持續提供登陸權限的服務器。退出登陸指客戶端退出登陸狀態。php
方案,客戶端登陸成功後, 服務器爲其分配seesionId和token, 客戶端每次請求資源時都帶上sessionId和token驗證,當sessionId失效帶上token從新獲取sessionId從而獲取相應資源;
登陸狀態指,客戶端登陸狀況(登陸中,未登陸);簡單登陸流程以下:算法
1 、客戶端向服務器第一次發起登陸請求(不傳輸用戶名和密碼)。服務器
二、服務器利用RSA算法產生一對公鑰和私鑰。並保留私鑰, 將公鑰發送給客戶端。微信
三、客戶端收到公鑰後, 加密用戶密碼, 向服務器發起第二次登陸請求(傳輸用戶名和加密後的密碼)。session
四、服務器利用保留的私鑰對密文進行解密,獲得真正的密碼。app
登陸成功後,服務器在session中分配一個Id記錄客戶端訪問狀態;加密
token就是令牌,最大的特色就是隨機性,不可預測;從上面流程可知,單單一個sessionId判斷用戶的登陸狀態及身份並不可取;爲此須要token進行身份審覈;而且token存活時間應比sessionId長;由於sessionId一旦實效,就能夠經過token來保持登陸狀態;blog
app登陸方式如開頭所說,主流三種:微信、QQ、帳號/密碼;首次驗證是經過數據的匹配;匹配成功服務器返回惟一的sessionId和token,防止用戶信息的泄露;期間,建議token存活時間應比sessionId長;由於sessionId一旦實效,就能夠經過token來維持登陸狀態;token
sessionId記錄着客戶端登陸狀態,保存在服務器session中;可想而知當session過了存活期時就會失效,經過token從新獲取sessionId;保證登陸狀態的延續;接口
sessionId註銷;
做者:不動峯
博客園: http://www.cnblogs.com/mylly/ 版權全部,歡迎保留原文連接進行轉載:)