摘要:本篇文章,主要講述了用戶登錄注冊的邏輯及如何用社交賬號登錄。僅供參考,具體情況依據產品需求而定。社交賬號登錄參數參數平臺渠道社交平臺開放驗證數據的合法性。若存在,直接進行登錄。若本站不存在賬號,引導用戶注冊,成功后與當前關聯即可。
本篇文章,主要講述了用戶登錄注冊的邏輯及如何用社交賬號登錄。
僅供參考,具體情況依據產品需求而定。
開放平臺有哪些?
微信
Sina微博
163
360
豆瓣
淘寶
github
開源中國
其他...
用戶注冊邏輯
參數
(username)用戶名
(password)密碼
(platform_id)平臺ID
(code)驗證碼
驗證數據合法性。
判斷`user`表是否存在該用戶名。 若存在,引導用戶登錄。 若不存在,執行注冊的程序。
密碼加密規則 (參考:加密技術與密鑰安全管理)
用戶登錄邏輯
普通登錄:
參數:
(username)用戶名
(password)密碼
(platform_id)平臺ID
(code)驗證碼
驗證數據的合法性。
判斷user表中是否存在用戶數據。
記錄日志。
社交賬號登錄(參數):
參數:
(platform_id)平臺ID
(channel_id)渠道ID
(open_id) 社交平臺開放ID
驗證數據的合法性。
判斷`user_social`表中是否存在該openid的數據。 若存在,直接進行登錄。 若不存在,將數據,存儲到`user_social` 表,引導用戶綁定本站賬號。 若本站已存在賬號,直接關聯賬號即可。
若本站不存在賬號,引導用戶注冊,成功后與當前openid關聯即可。
記錄日志
數據表結構
用戶賬號表
CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主鍵ID", `username` varchar(80) NOT NULL DEFAULT "" COMMENT "用戶名", `password` char(60) NOT NULL DEFAULT "" COMMENT "密碼", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平臺ID(1=PC,2=Wap,3=Android,4=iOS)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "創建時間", PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用戶賬號表";
用戶社交賬號表
CREATE TABLE `user_social` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主鍵ID", `uid` int(11) unsigned NOT NULL DEFAULT "0" COMMENT "用戶ID", `open_id` varchar(120) NOT NULL DEFAULT "" COMMENT "社交平臺開放ID", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平臺ID(1=PC,2=Wap,3=Android,4=iOS)", `channel_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "渠道ID(1=QQ,2=SinaWeibo,3=Weixin)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "創建時間", `update_time` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "更新時間", PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用戶社交賬號表";
用戶登錄日志表
CREATE TABLE `user_login_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主鍵ID", `uid` int(11) unsigned NOT NULL DEFAULT "0" COMMENT "用戶ID", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平臺ID(1=PC,2=Wap,3=Android,4=iOS)", `channel_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "渠道ID(1=QQ,2=SinaWeibo,3=Weixin)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "創建時間" PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用戶登錄日志表";
系統的講解 - SSO 單點登錄
系統的講解 - PHP WEB 安全防御
系統的講解 - PHP 緩存技術
系統的講解 - PHP 接口簽名驗證
系統的講解 - PHP 浮點數高精度運算
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30515.html
摘要:在詳解中使用解決了第三方賬號登錄集成的問題,那么在獲取到用戶資料之后呢集成多個社交賬號,該如何綁定同一個賬號本篇就讓我們來探討一下集成登錄的那點事。 Dearmadman 在 Laravel Socialite 詳解 中使用 larastarscn/socialite 解決了第三方賬號登錄集成的問題,那么在獲取到用戶資料之后呢?集成多個社交賬號,該如何綁定同一個賬號?本篇就讓我們來探討...
摘要:驗證碼安全參考信息重放登錄注冊找密等入口,可能通過短信驗證碼郵箱驗證碼之類的進行確認操作,如果末對操作進行次數及頻率上的限制,則會產生大量的重放攻擊。高并發缺陷交易類重放攻擊,高并發的情況下末對用戶操作行為加鎖,導致購買限制的繞過。 showImg(https://segmentfault.com/img/bVBVVR); 業務安全從流程設計維度可劃分為賬戶體系安全、交易體系安全、支付...
摘要:從最大的同性社交平臺獲取數據好了,言歸正傳,回到題目。烏云密布的爬蟲百度網盤這件事,是我不想看到的,這類安全問題的一個共同特點用戶自身確實存在問題。 本文作者:夏之冰雪,i春秋簽約作家 《我在百度網盤上看到上萬條車主個人信息,企業、政府高官信息、各種數據庫和無窮無盡的盜版》,一時間,這篇文章就火了,火爆程度另百度猝不及防。 其實呢,這事真不能全怪百度,畢竟用戶分享出去了。之所以引起這么...
閱讀 849·2021-11-15 17:58
閱讀 3648·2021-11-12 10:36
閱讀 3786·2021-09-22 16:06
閱讀 959·2021-09-10 10:50
閱讀 1327·2019-08-30 11:19
閱讀 3313·2019-08-29 16:26
閱讀 934·2019-08-29 10:55
閱讀 3344·2019-08-26 13:48