技术控

    今日:0| 主题:63445
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] 浅谈多个社交账号的登录注册设计

[复制链接]
萌城少年 发表于 2016-10-1 02:14:47
192 6

浅谈多个社交账号的登录注册设计

浅谈多个社交账号的登录注册设计

  本篇文章,主要讲述了用户登录注册的逻辑及如何用社交账号登录。
  仅供参考,具体情况依据产品需求而定。
  用户注册逻辑
  
       
  • 参数
           
    • (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关联即可。
           
    • 记录日志
         
       
  数据表结构
  
       
  • 用户账号表
    1. CREATE TABLE `user` (
    2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    3.   `username` varchar(80) NOT NULL DEFAULT '' COMMENT '用户名',
    4.   `password` char(60) NOT NULL DEFAULT '' COMMENT '密码',
    5.   `platform_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '平台ID(1=PC,2=Wap,3=Android,4=iOS)',
    6.   `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    7.   PRIMARY KEY (`id`)
    8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户账号表';
    复制代码
      
  • 用户社交账号表
    1. CREATE TABLE `user_social` (
    2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    3.   `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
    4.   `open_id` varchar(120) NOT NULL DEFAULT '' COMMENT '社交平台开放ID',
    5.   `platform_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '平台ID(1=PC,2=Wap,3=Android,4=iOS)',
    6.   `channel_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '渠道ID(1=QQ,2=SinaWeibo,3=Weixin)',
    7.   `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    8.   `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',
    9.   PRIMARY KEY (`id`),
    10.   KEY `idx_uid` (`uid`)
    11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户社交账号表';
    复制代码
      
  • 用户登录日志表
    1. CREATE TABLE `user_login_log` (
    2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    3.   `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
    4.   `platform_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '平台ID(1=PC,2=Wap,3=Android,4=iOS)',
    5.   `channel_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '渠道ID(1=QQ,2=SinaWeibo,3=Weixin)',
    6.   `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
    7.   PRIMARY KEY (`id`),
    8.   KEY `idx_uid` (`uid`)
    9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户登录日志表';
    复制代码

  Thanks ~
  ​
113132132 发表于 2016-10-1 02:19:23
不忍直视
回复 支持 反对

使用道具 举报

丁志豪 发表于 2016-10-1 05:43:57
不回帖,臣妾做不到啊!
回复 支持 反对

使用道具 举报

还有谁了 发表于 2016-10-2 02:03:36
广告位,,坐下看看
回复 支持 反对

使用道具 举报

otuvnwsz 发表于 2016-10-18 04:30:40
明星脱一点就能更出名,我脱的光光的却被抓起来了
回复 支持 反对

使用道具 举报

1536476952 发表于 2016-10-18 05:02:10
传说中的沙发???哇卡卡
回复 支持 反对

使用道具 举报

o限 发表于 2016-11-18 17:45:43
做为一名新人,不敢在大声说话,也不敢得罪人,只能默默地顶完贴然后转身就走人。动作要快,姿势要帅,深藏功与名。
回复 支持 反对

使用道具 举报

我要投稿

推荐阅读


回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表