首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库没有唯一的列和电子邮件的登录系统有多可靠?

数据库没有唯一的列和电子邮件的登录系统有多可靠?
EN

Stack Overflow用户
提问于 2021-03-24 09:54:49
回答 1查看 32关注 0票数 0

我正在创建一个登录系统,其中数据库没有唯一的列,电子邮件可以复制。

用户表的数据库结构

代码语言:javascript
复制
1. 'id' => unique, auto_increment, and primary_key
2. 'email' => not null,
3. 'password' => not null,
4. 'subdomain' => not null

例如,数据库中的=>示例记录可能是

代码语言:javascript
复制
1.  id = 1
    email = me@me.com
    password = 12345
    subdomain = first

2.  id = 2
    email = me@me.com
    password = 12345
    subdomain = second

例如,让我们说,

subdomains.

  • Login authentication.

  • System有一个名为example.com的域名,接收电子邮件和密码,authentication.

  • ,如果同一用户试图注册不同的子域(例如:https://.example.com/loginhttps://.example.com/register),并且使用相同的电子邮件id (用于第一个子域https://.example.com/register的用户),则可以成功注册并登录到系统。(但每次登录时,身份验证系统都会使用电子邮件和密码组合检查子域-会话变量将根据路由中的子域设置)如果用户未向任何其他子域注册,将无法访问该子域,除非他同时使用同一用户表(或任何子域)工作。registers.

  • But。

注意:登录系统是使用php7.4,Laravel 7.* framework构建的。

我的问题是:这种方法将来会不会产生任何问题,对这种登录系统有什么期望,也欢迎您提出任何建议。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-24 10:30:40

因为问题是“有多可靠”。答案是:它可以非常可靠。

在Domain+email中仍然有一个统一性。您将需要对您的auth中间件进行重新工作,并将域作为与身份验证路由(会话、url或其他解决方案)的每一次交互的要求,并重新工作您的身份验证控制器。

关于结构,由你来决定是否应该:

  • 跨所有域的唯一用户:

代码语言:javascript
复制
- Have a pivot table between users and domains to link the user to each domain with the password in the pivot table (if you want different password per domain)
- Pros: You can have only one profile editing across all domains.
- Cons: manage a many to many relation.

  • 具有相同电子邮件但唯一组合的电子邮件+域的多个用户。

代码语言:javascript
复制
- Pros: none
- Cons: 
    - profile updating (password/image/statuses/...)
    - redondancy and lack of integrity
    - Relation between users and other models that are independant of the domain.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66778573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档