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

Laravel |基于用户角色限制登录

权黎昕
2023-03-14

因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式

users(id, username, password)
roles(id, name)
role_user (user_id, role_id)

我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。

请注意,一旦用户登录并强制注销,我们不想检查角色。

谢谢

共有1个答案

刘和正
2023-03-14

好的,我们找到的快速解决方案是重写LoginController中的登录函数,检查用户名是否具有管理员角色,然后使登录失败

public function login(Request $request)
    {
        $unAuthorizedRoles = ['ADMIN'];
        $exist = User::where('username', $request->username)->whereHas('roles', static function ($query) use ($unAuthorizedRoles) {
            return $query->whereIn('name', $unAuthorizedRoles);
        })->exists();

        if ($exist)
            return $this->sendFailedLoginResponse($request);

        [...]

    }
 类似资料:
  • 我有3个用户角色:管理员、客户和员工。 登录后,每个角色将重定向到特定的仪表板,例如:-管理员:网站。com/admin-客户:网站。com/客户-员工:网站。通讯员/雇员 此时,无论我使用哪个用户角色,都可以通过这些网址访问所有内容。 限制客户打开admin的最简单方法是什么 Laravel版本5.2.45 PHP版本7.2我正在使用共享托管提供商。谢谢你们

  • 本文展示了如何根据不同的用户角色,在登录之后来重定向到不同的页面。 在 method-security项目的基础上,我们构建了一个role-base-login项目。 build.gradle 修改 build.gradle 文件,让我们的role-base-login项目成为一个新的项目。 修改内容也比较简单,修改项目名称及版本即可。 jar { baseName = 'role-bas

  • 我有多个角色用于用户登录,如果一个用户只有一个角色,我已经成功实现了,但问题是如果一个用户有多个角色,那么我如何实现这一点。 感谢并问候普拉巴特·潘伟迪。

  • 问题内容: 我们已将日志传送实现为数据库灾难恢复解决方案,并想知道是否可以使用T-SQL编写辅助服务器上主数据库的所有登录名,用户,角色权限等脚本,以便T- 可以将SQL安排为以SQL作业的形式运行吗? 我的目的是在发生D / R情况时,我们可以简单地将每个数据库的事务日志恢复到辅助服务器,而不必担心孤立的用户等。 谢谢您的帮助! 问题答案: 这里有一个登录复制脚本,旨在将登录复制到另一台服务器以

  • 情景: 我们有一个多租户应用程序,其中每个租户都有自己的模式。有一个公共模式,其中存在一个包含每个租户记录的表。因此,有一个超级管理员可以创建租户,并将管理员分配给新创建的租户。 为了实现RBAC(基于角色的访问控制),我计划将每个角色表放入租户模式,并实现一些中间件来检查授权。在孤立的模式环境中,这是一个好的体系结构吗?

  • 读后http://en.wikipedia.org/wiki/Role-based_access_control看到人们建立授权/访问控制的方式,我想到了这个问题:“为什么我们在检查用户是否被允许执行X操作时检查用户的角色,而不是检查他们的权限?” 这就是我所理解的,用户有角色,角色有权限,这就是用户可以拥有权限的方式(用户不能明确地拥有分配给它的权限,它通过拥有角色获得权限) 我认为,在处理添加