数据库中用户登录注册用户信息表怎么设计如何设计

2023-11-13

用户登录

站内登录:用户信息+密码的验证形式;

用户名+密码,

手机+密码

站外授权:第三方登录,

其实它也是用户信息+密码的形式,

用户信息即第三方系统中的ID(第三方登录一定会给一个在他们系统中的唯一标识),密码即access_token,只不过是一种有使用时效定期修改的密码。

所以我们把它分离出了 用户基础信息表 + 用户授权信息表。

例如:

用户信息表 users

id               int(10)序号
nickname     varchar(20)昵称
headimg       varchar(255)头像

测试数据记录:

id|nickname|headimg
1|红中铭科技|xxx/headimg1.jpg
2|你好中国人工智能|xxx/headimg2.jpg

--------------------------------------------------

用户登录授权信息表 user_auths
id                int(10)用户序号(用户信息表-外键user_id)                                                       
login_type    tinyint(2)登录类型(3:phone,2:email,1:uname)或(4:wechat,5:weibo)
openid         varchar(50)用户的唯一标识(手机号号,邮箱地址,用户名或第三方应用的唯一标识)
login_token   varchar(600)登录凭证(站内的保存用户密码,站外的不保存或保存api接口的access_token凭证)

注意:数据库字段结构仅供参考,如有更好的建议和意见请留言!

测试数据记录:

------------------------------------------------------------------------------------

id|user_id|login_type|openid|login_token
1|1|username|hzminc|4819db06a014cd14==>md5-bit16abc(hzminc.com)
2|1|phone|15888888888|e640626043da7f22==>md5-bit16abc(15888888888)
3|2|wechat|jm03026|SgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46

------------------------------------------------------------------------------------

以上两条测试数据分析,两个测试用户,第一个用户可以绑定账户登录也可以绑定手机号登陆,即可实现多方式登陆,第二用户测是通过第三方微信接口获得站内登录授权。

流程说明:

程序流程与代码实现:用户使用 邮箱/用户名/手机号+密码登录验证的时,则先判断登录类型,若用户使用了手机号为登录类型,使用 SELECT * FROM user_auths WHERE type=’phone’ and openid=’15888888888’ 查询是否存在记录,如有,取出并判断数据库中login_token是否和登录提交登录表单数值相等,相符则通过授权验证,通过user_id查询用户信息表获取用户相应的基本信息资料。




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库中用户登录注册用户信息表怎么设计如何设计 的相关文章

  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • NHibernate - 无法执行查询 - 输入字符串的格式不正确

    我已经为此摸不着头脑有一段时间了 我不知道出了什么问题 概述 我的 MySQL 数据库中有两个表 两者都正确映射到数据库 我可以加载数据 并且我能够查询一个表 但不能查询另一个表 我研究过的解决方案 表和 C 代码之间的类型转换问题 映射问
  • MVCC 如何与 MySql 中的 Lock 配合使用?

    我知道Mysql中使用锁或者MVCC可以实现并发控制 比如可重复读 但我不知道MVCC如何避免幻读 在其他地方了解到一般是通过MVCC和Gap Lock来实现的 但是目前我理解的是MVCC不需要锁 即更新和删除都是使用undo log来实现
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • mysql 不带空字符串和 NULL 的不同值

    如何检索没有空字符串值和NULL值的mysql不同值 SELECT DISTINCT CON EMAILADDRESS AS E MAIL FROM STUDENT INNER JOIN CONTACT CON ON STUDENT CON
  • 使用什么框架来引导我的第一个生产 scala 项目?

    我正在第一次涉足 scala 的生产应用程序 该应用程序当前打包为 war 文件 我的计划是创建 scala 编译工件的 jar 文件 并将其添加到 war 文件的 lib 文件夹中 我的增强功能是通过 Jersey 公开的 mysql 支
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • 如何从 MySQL 数据查询创建 XML 文件?

    我想知道一种仅使用 MySQL 查询创建 XML 文件的方法 根本不使用任何脚本语言 有关于这个主题的书籍 教程吗 UPDATE 我想澄清一下 我想使用 sql 查询将 XML 数据转发到 php 脚本 Here s 关于从 MySQL S
  • 条件触发器的Django迁移sql

    我想创建一个触发器 仅在满足条件时插入表 我尝试过使用 IF BEGIN END 和 WHERE 的各种组合 但 Django 每次都会返回 SQL 语法错误 这里 type user id指的是触发该事件的人 user id指的是接收到通
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的

随机推荐

  • align text-align

    align 规定 div 元素中的内容的水平对齐方式 text align 规定 元素中 的文本的水平对齐方式 两个属性使用的地方不一样的 div align center This is some text div align直接写在是d
  • WPF在TreeView的子项中的TextBlock,触发点击事件时,获得当前文本框所在的TreeViewItem数据对象

    要实现的效果是 在一个深层treeview控件的treeviewitem中有个textblock 而我要在点击这个textblock时阻断向下传递 e handle true 并且将当前这个项的绑定属性IsExpanded设置相反值 前台代
  • CSRF漏洞简单解决

    在表单内增加了一个隐藏域 再登陆页面增加 然后扫描软件在扫描就扫描不出来了 如下
  • 光敏电阻的原理及应用

    转载出 http www jqr8 com thread 1406 1 1 html 一 光敏电阻的概念 光敏电阻器 photovaristor 又叫光感电阻 是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器 入射光强 电
  • 第一章 Web前端技术简介 A卷

    一 选择题 在HTML中有效 规范的注释声明是 D A 这是注释 B C D 关于W3C标准 下列说法错误的是 B A W3C标准是由W3C组织制定的一系列Web标准 B htm span p 是符合W3C标准规范的书写方式 C W3C标准
  • python万能存储包pickle

    pickle几乎可以保存python的一切格式对象 字典 列表等等 无需将其转为numpy或pandas等其他格式再保存 缺点是它不像json等是通用格式 只能使用python来读取 pickle官方文档 pickle dump obj f
  • Docker源码修改工作总结(三)

    话不多说上干货 一 安装mysql数据库 并且建立相关表 在本地主机上安装mysql数据库 并且建立一个名为docker的数据库 在数据库中建立两个数据表分别为container auto和container user 分别代表自动生成的秘
  • leetcode题202快乐数,java解答,不断优化到beate100%

    一 问题描述 快乐数 Category Difficulty Likes Dislikes algorithms Easy 62 47 868 Tags hash table math Companies airbnb twitter ub
  • vue3+vite中使用path-to-regexp以及相关的报错问题

    前言 path to regexp 该方法的作用是把字符串转为正则表达式 一般我们使用动态匹配路由的时候会用到这个 1 介绍path to regexp 更多点我查看 pathToRegexp pathToRegexp foo bar 打印
  • 重新学javaweb---JavaEE 监听器

    监听器 监听器就是一个java程序 功能是监听另一个java对象变化 方法调用 属性变更 实现 写一个类实现响应的接口 注册监听器 利用 web xml 8个监听器 分为了3种 一 用来监听三大作用域的创建和销毁的监听器 除了page域 1
  • ResNeXt创新点解析

    Aggregated Residual Transformations for Deep Neural Networks 1 亮点 利用分组卷积 构建一种平行堆叠相同拓扑结构的block 在不明显增加参数的情况下提升了准确率 结构简单 具有
  • 数学常数

    符号 值 名称 OEIS 3 14159 26535 89793 23846 26433 83279 50288 圆周率 e 2 71828 18284 59045 23536 02874 71352 66249
  • 解决org.bson.codecs.configuration.CodecConfigurationException:Cant find a codec for java.sql.date

    Mongo数据库Document 对象转为jsonObject对象时 使用toJson方法报错 org bson codecs configuration CodecConfigurationException Cant find a co
  • Unity 2019 安装教程

    Unity 2019 安装教程 一 安装包准备 Unity 2019 x Unity Hub 点此下载 二 安装 双击上面两个安装包 执行安装 全部默认选项 三 激活 虽然unity可以是免费软件 但仍需要进行激活方可使用 步骤如下 1 双
  • c/c++ NV12转I420P

    NV12及I420格式不再赘述 下面代码只适用width与stride相等的情况 如果stride与width不相等的时候 需要按照步长计算 思路1 重新new一块I420buff 把nv12中UV分量分别复制到I420对应的位置中 i42
  • SpringCloud——分布式为什么越来越热门

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 服
  • 黑群辉DSM 6.2.3 系统安装

    修改引导程序配置文件 首先我们可以使用ChipEasy芯片无忧查找U盘的VID和PID 以下图为例 这个U盘的VID是0930 PID是6544 请记录好这两个值 下面修改配置文件需要用到 逻辑盘符 E 此分区容量 7 2G 设备ID VI
  • java归并两个无序链表并排序_java编程题之合并两个排序的链表

    本文实例为大家分享了java合并两个排序的链表 供大家参考 具体内容如下 剑指offer编程题 JAVA实现 第16题 合并两个排序的链表 输入两个单调递增的链表 输出两个链表合成后的链表 当然我们需要合成后的链表满足单调不减规则 publ
  • mysql year使用_MySQL YEAR()用法及代码示例

    MySQL中的YEAR 函数用于查找给定日期的年份 如果日期为NULL 则YEAR 函数将返回NULL 否则 它将返回从1000到9999的值范围 用法 YEAR date 参数 此方法接受上面提到的和下面描述的一个参数 date 我们要从
  • 数据库中用户登录注册用户信息表怎么设计如何设计

    用户登录 站内登录 用户信息 密码的验证形式 用户名 密码 手机 密码 站外授权 第三方登录 其实它也是用户信息 密码的形式 用户信息即第三方系统中的ID 第三方登录一定会给一个在他们系统中的唯一标识 密码即access token 只不过