如何从 Laravel 5.1 中的表而不是“用户”表中对用户进行身份验证?

Posted

技术标签:

【中文标题】如何从 Laravel 5.1 中的表而不是“用户”表中对用户进行身份验证?【英文标题】:How to Authenticate a user from a table rather than 'users' table in Laravel 5.1? 【发布时间】:2015-11-17 12:19:58 【问题描述】:

我是 Laravel 的新手,我正在尝试对玩家表中的用户进行身份验证。

正如我们所知,Auth::attempt 用于验证用户身份,默认情况下它适用于 users 表,而对于 users 表,它可以完美运行。但是现在我想从另一个表(玩家)验证另一个用户(玩家),但我找不到解决方案。

【问题讨论】:

创建一个新的身份验证,或者您可以使用身份验证的相同表用户和用户角色部分来允许/限制对您的应用程序的访问。希望对您有所帮助。 【参考方案1】:

我也有同样的要求。我有两个用户表users(用于主网站)和admins(用于管理面板)。为此,我必须针对admins 表对admin 用户进行身份验证。我想使用股票认证库。所以,我做了以下中间件。

当然我有单独的管理面板登录表单

<?php namespace App\Http\Middleware;

use Closure;

class ChangeUserToAdmin


    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    
        \Config::set('auth.table', 'admins');
        \Config::set('auth.model', 'App\DB\Admin\Admin');

        \Config::set('session.cookie', 'admin_session');
        \Config::set('session.path', '/admin/');

        return $next($request);
    


我在admin 路由组(即domain.com/admin/**)中的所有路由都受此中间件保护。所以基本上我更改了admin 区域的身份验证模型和表。

【讨论】:

以上是关于如何从 Laravel 5.1 中的表而不是“用户”表中对用户进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

PHPMYADMIN中的laravel更改表而无需迁移

如何在 Laravel 5.1 中获取数据库中的表列表

如何更改 laravel 中的用户模型以使用其他表进行身份验证而不是用户?

如何使用 laravel 8 验证来自另一个(买家)表的数据(请求中)

如何删除所有表而不是 Postgresql 中的模式?

在 1 页上生成 1 个可切换表而不是 3 个表