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

如何使用两个Laravel默认保护?

贲培
2023-03-14

我尝试使用相同的表单登录管理员和用户,但config/auth I只能设置一个默认值

这是我的配置/auth

'defaults' => [
    'guard' => 'web_users',
    'passwords' => 'users',
],
'guards' => [
    'web_users' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'web_admins' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],

当我用默认的web_users登录用户时,我可以用方法Auth::user()检索他的数据,但是如果我用默认的web_admins登录管理员,则无法检索任何内容。

路线:

Route::resource('log','LogController');
Route::get('logout','LogController@logout');

日志控制器

public function store(Request $request)
{

    if(Auth::guard('web_users')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }

    if(Auth::guard('web_admins')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }
}

public function logout()
{
    Auth::logout();
    return Redirect::to('log');
}

注释:对不起我的英语,我讲得不太好

共有1个答案

佟高澹
2023-03-14

为路由文件尝试此操作

Route::group(['middleware' => 'auth:web_users,web_admin'], function () {  
  Route::resource('log','LogController');
  Route::get('logout','LogController@logout');
});  
 类似资料:
  • 在Connection.php第647行中: SQLSTATE[42000]:语法错误或访问冲突: 1071指定的键太长;最大键长度为1000字节(SQL:更改表添加uni que()) 在Connection.php第449行: SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为1000字节。 我怎样才能解决这个问题?? 当我想在CMD中迁移默认迁移时,会

  • 我正在为RESTAPI建立一个Laravel项目。基本上,我将用户分为两个表,用户和管理员(模型名)。我想使用默认的Laravel身份验证框架通过web guard对管理员进行身份验证,并使用JWT(tymondesigns提供的包)通过api guard对用户进行身份验证。一切都很顺利。我配置了软件包,在app/auth.php中设置了防护和提供者,并使其几乎正常工作。 我现在可以通过Auth

  • Spring靴默认日志如下所示: 我写了一个对数Spring.xml,用于为我的应用程序设置一些记录器和附加器。但是,当“资源”目录中存在.xml时,Spring靴默认日志将消失。而且只有一个

  • 问题内容: 我在Web应用程序中使用了JPA,但我想不出如何持久化彼此相关的两个新实体。这里是一个例子: 这是两个实体 该 消费者 有一个 ID 和其他一些价值观。该 ProfilePicture 使用 消费者 的 ID ,因为它是自己的主键和外键。(由于没有使用者,ProfilePicture将不存在,并且并非每个使用者都具有ProfilePicture) 我使用NetBeans生成实体类和会话

  • 我安装了php5.6.6作为apache 2.4模块。 当加载带有 因此,正如文档所建议的,我编辑了httpd.conf指向php.ini配置文件(在C:\php56中)。我还添加了C:\php56到PATH和PHPRC环境变量。 由于我在这个文件夹中没有任何php.ini文件,我复制并重命名了“php.ini生产”文件,并编辑了扩展路径。 当我再次显示页面时,它将保持空白。。。下面是“php--

  • 我不明白迁移中的选项会产生什么影响。 我可以看到数据库中的列是用默认值定义的,但是模型完全忽略了它。假设我有一个反映数据库中表的模型。我必须迁移才能创建books表: 当我创建一个新的模型实例时,我看到: 默认值被忽略,属性设置不正确。好的,我可以得到它,因为它是一个新对象,它不应该从数据库中获取默认值。但是如果我试图保存模型,比如: 在数据库的字段中保存0! 那么,迁移中的选项有什么意义呢? 顺