当前位置: 首页 > 知识库问答 >
问题:

Laravel,如何重置密码到电子邮件在用户表中重复

松高爽
2023-03-14

我有用户表,其中包含用户及其角色的信息,所以这里唯一的是“电子邮件”、“role_id”、“电话”组合在一起,所以电子邮件可以复制,但如果role_id和电话号码被复制,就不能复制,这是因为用户可以客户,这意味着role_id=1,或者他有商业账户,这意味着role_id=2,但是如果这个客户需要重置他的客户密码,或者他的商业账户密码呢?我该怎么做呢?

桌子

    Schema::create('users', function (Blueprint $table) {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->string('fname');
        $table->string('lname');
        $table->boolean('role_id')->default(1);
        $table->string('phone');
        $table->string('email');
        $table->unique(['email', 'role_id','phone']);
        $table->string('password');
        $table->boolean('status')->default(1);
        $table->rememberToken();
        $table->timestamp('email_verified_at')->nullable();
        $table->timestamps();
    });

共有1个答案

詹正浩
2023-03-14
  1. 好的解决方案是添加一个新的关系表,例如user_role(user_role.user_id,user_role.role_id),并使用一个唯一字段(email或phone)创建索引

但是您需要在登录表单或其他地方添加角色的下拉列表。或者改变“访问模式”。例如,如果用户具有客户角色和业务角色,则可以让他访问这两个角色的所有功能。

另一个解决方案是在密码重置表单中添加角色的下拉列表。。。

另一个解决方案是为所有用户行重置密码。这样,用户可以通过电子邮件更改角色进行登录

 类似资料:
  • 我是拉拉维尔的初学者。目前我正在学习这个框架。我现在的Laravel版本是5.3。 我正在使用

  • 问题内容: MyDjango应用程序当前已设置为使用本机注册包来处理用户身份验证和管理。 我创建了一些文件,用于发送密码重置令牌. 它工作正常。除了密码重设电子邮件外,它是一个丑陋的纯文字怪物。我想使其与My应用程序发送的所有其他电子邮件的外观和风格相匹配。IE:我希望它是HTML,并包含图像,样式和链接。我怎么做? 我按照这里的详细说明进行操作。但是,该代码中有一个错误,我不知道该如何处理: 有

  • 问题内容: 在我的应用程序中,我使用的是Django Allauth。我没有任何用户注册表格。管理员将通过上传包含用户信息的Excel文件来注册用户。我已完成所有这些操作,并且通过自动生成密码将用户保存在用户表中。上传用户列表并将其保存在数据库中之后,我想向每个用户发送重置密码电子邮件。 在allauth重置密码中,您首先需要进入重置页面并输入您的电子邮件。然后会发送一封电子邮件,指示您更改密码

  • 我用的是拉威尔的授权书。我正在测试你放入电子邮件的页面,当你点击提交按钮时,密码重置电子邮件将发送到你的电子邮件。 当我手动重置密码时,会发送密码重置电子邮件。但我创建了这个测试,以确保密码重置电子邮件被发送,但它不起作用。 有1次失败: 1) 预期的[Illumb\Foundation\Auth\ResetPassword]邮件未排队。断言false为true失败。 我遵循以下代码: https

  • 我正在使用离子3和firebase作为后端。在我的应用程序中,我试图让用户只使用用户名和密码注册。firebase默认情况下不提供该选项。因此,我将用户输入作为用户名(例如:“mike123”),然后添加@myapp。通用域名格式。所以它看起来像一封电子邮件:'mike123@myapp.com'. 这很好,但当用户想要重置密码时,出现了一个问题。是否可以让用户在重置密码时键入任何有效的电子邮件地

  • 你好,我正在做一个天气应用程序,我不需要用户用电子邮件和密码注册。我想用他们的名字注册他们,如果可能的话,把他们的名字存储在firebase中,并在应用程序中为他们命名。如何做到这一点?