为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel,如何将密码重置为用户表中重复的电子邮件

Laravel,如何将密码重置为用户表中重复的电子邮件

PHP
UYOU 2022-08-19 10:24:54
我有用户表,其中包含有关用户及其角色的信息,因此这里的唯一是“电子邮件”,“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 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

  1. 好的解决方案是添加一个新的关系表,例如user_role(user_role.user_id,user_role.role_id),并使用一个唯一字段(电子邮件或电话)创建索引。

但是,您需要在登录表单或其他位置添加角色下拉列表。或者改变“获取的礼仪”。例如,如果用户具有客户角色和业务角色,则可以授予他访问这两个角色的所有功能的权限。

  1. 另一种解决方案是将角色下拉列表添加到密码重置表单中...

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


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信