Laravel 5.2.29 multiauth 使用 Auth::guard('one'),Auth::guard('two')

Posted

技术标签:

【中文标题】Laravel 5.2.29 multiauth 使用 Auth::guard(\'one\'),Auth::guard(\'two\')【英文标题】:Laravel 5.2.29 multiauth using Auth::guard('one'),Auth::guard('two')Laravel 5.2.29 multiauth 使用 Auth::guard('one'),Auth::guard('two') 【发布时间】:2016-07-30 21:29:54 【问题描述】:

请帮我解决这个问题

我想使用多重身份验证。

我的 Laravel 版本是 5.2.* (5.2.29)

我会做所有文档中写的

//congig/auth.php
<?php

return [

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'token',
        'provider' => 'adminProvider',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'adminProvider' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
],

'passwords' => [
        'users' => [
            'provider' => 'users',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
];

 But 
 Auth::guard('api')->attempt(['email'=>som@email.com,...])

它给出了以下错误

AuthController.php 第 34 行中的 FatalErrorException:

调用未定义的方法 Illuminate\Auth\TokenGuard::attempt() 我做错了什么?

【问题讨论】:

【参考方案1】:

您应该更改以下内容:

'admin' => [
    'driver' => 'token',
    'provider' => 'adminProvider',
],

'admin' => [
    'driver' => 'session',
    'provider' => 'adminProvider',
],

您不能使用带有令牌的尝试。

【讨论】:

哦,非常感谢。您的回答帮助我解决了这个问题 抱歉,我不知道该怎么做 在我回答您的问题的左侧,两个箭头之间为零,请点击向上箭头并单击向下箭头@VanyaAvchyan 下方的勾号 我这样做是因为我真的完全相信这个答案。再次感谢您 如果有时间请回复本问题***.com/questions/36520419/…

以上是关于Laravel 5.2.29 multiauth 使用 Auth::guard('one'),Auth::guard('two')的主要内容,如果未能解决你的问题,请参考以下文章

如何使用laravel搭建后台登录系统

laravel 4.2 如何检查是不是有用户登录多重身份验证

刀片视图未反映更改

laravel 判断 改了哪个定位

使用 laravel 安装程序创建 laravel 项目

Laravel:laravel 可翻译插件