如何设计支持使用第三方帐号登陆的帐户系统的数据库表

如何设计支持使用第三方帐号登陆的帐户系统的数据库表,第1张

实现用户认证授权系统的方法如下:

首先,统一用户管理系统在设计时就要能建立一个能适应各种系统权限管理要求的权限模型。

对于己建立的老系统,各系统将自己的用户角色管理,角色一权限管理等部分抽离出来,统一放在统一用户管理系统中。

而对于新建立的系统,各系统在建设的初期就要把自己权限设计的要求提交给统一用户管理系统,按照其需求在本身统一用户管理系统的权限模型上去构建出该系统的实例。

那么管理员就可以通过统一授权系统为各用户在不同系统的权限进行配置。

在登陆时各系统就调用相关的统一认证和授权接口,获取用户相关的权限信息,进到各系统后再创建用户,将相关的权限信息赋予给用户类。

然后就可以在应用系统中进行权限验证。

   这是一个终极目标的做法,这个方法是将所有系统的权限控制部分都建在统一用户管理系统中。这种方式既能对用户进行统一的授权和认证,也能展现各用户的统一权限视图。

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情。用户表结构的设计,算是整个后台架构的基石。如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少。与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位。

先前设计:

id

username

password

用户名加上密码,解决简单需求,留个id作为其他表的外键。当然,那时候密码还可能是明文存储,好点的知道md5。

后来呢,随着业务需求的拓展,要加个用户状态 status 判断用户是否被封禁,注册时间和注册IP地址、上次登录时间和IP地址备查(并衍生出登录记录表,用来判断是否异地登录等,在此不表),用户角色/权限 role (又衍生出用户角色权限关系,还是另文讨论),业务也需要个人的个人信息如真实姓名、地址等也一股脑往上添加,现在形成了一个很完整的用户关系表。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6659579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存