Laravel多表身份验证

时间:2019-07-31 16:07:39

标签: laravel laravel-5.8

我有三个桌子 管理员(对于管理员), Teachers (老师), 学生(针对学生)。

每个用户都有自己的仪表板(AdminDash,TeacherDash,StudentDash)。现在,我要做的就是将每个用户登录后发送到各自的仪表板。甚至有可能这样做。

这也可以使用单个登录表单来完成,还是我需要针对每种情况和不同的控制器创建不同的登录表单进行身份验证。

编辑: 实际上,在这里,老师和学生用不同的值填写不同的注册表,所以我不想将它们存储在同一张表中。管理员适用于运行站点的管理员和超级管理员。他们登录后使用的仪表板也不同。

2 个答案:

答案 0 :(得分:0)

我发布了一个自定义laravel,用于在一个laravel项目中管理多重身份验证。在示例分支中,我逐步介绍了您最了解的所有内容。 larasin

  

这也可以使用单个登录表单来完成,还是我需要针对每种情况和不同的控制器创建不同的登录表单进行身份验证。

您可以创建一个登录表单组件,并在任何需要的地方使用它。

答案 1 :(得分:0)

首先使用Authenticable扩展您的3张桌子,

 /user/path/output/SAP_xz.png
/user/path/output/LUF_df.png

然后在您的config / auth中,设置提供者,如:

class User extends Authenticatable

然后,您应该可以对模型实例进行auth :: attempt。 让我知道这是否行不通,我在Laravel也很新:)干杯!

p / s:我确实认为只将用户表与“ role”列一起使用会更好,但是我相信您可能需要为每个用户组使用不同的列。但是您仍然可以为这些列使用新表,例如“ teacher_profiles”,“ user_profiles”,并且可以根据您的角色引用不同的表。 例如,如果“ teacher” role_id为3,则如果用户role == 3,则将引用“ teacher_profiles”表。