php - 带 API 防护的 Laravel 5.2 多重身份验证使用错误的表

标签 php authentication laravel-5

我正在尝试让多身份验证系统正常工作,用户可以通过普通的门户网站登录,但单独的实体数据库(例如名为“机器人”)也可以通过 API 保护 token 驱动程序登录。但无论我做什么,我的设置都不会将我的身份验证防护引导到正确的机器人数据库,并继续尝试通过 token 将这些请求验证为用户(失败,因为用户没有 token )。

有人可以帮我找出哪里出了问题吗?

我首先在 Kernel.php 中组合了一个中间件组:

'api' => [
    'throttle:60,1',
        'auth:api',
],

这使用 config/auth.php 中的设置

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

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

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

    'robots' => [
        'driver' => 'eloquent',
        'model' => App\Models\Robot::class,
    ],
],

中间件在routes.php中被调用

Route::group(['middleware' => 'api'], function () {
    Route::get('api/request', 'API\RequestController@index');
});

它使用这个模型:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;

class Robots extends Authenticatable
{
    protected $fillable = [
        'serial_number','api_token',
    ];
    protected $guard = 'Robots';

    protected $hidden = [
        'api_token',
    ];
}

有什么想法吗?

更新:经过进一步检查,auth.php 中的大多数设置似乎都没有正确应用 - 有什么方法可以强制这些设置生效吗?

最佳答案

实际问题/解决方案:

Laravel 有一个单独的、很少提及的缓存,专门为其配置文件而存在。普通的缓存和类重置方法(例如 Composer dump-autoload 和 php artisan cache:clear )不会影响此缓存,这导致我处于没有任何设置的困惑状态在我的 auth.php 文件中生效。

清除此缓存的正确方法是使用以下命令:

php artisan 配置:缓存

php artisan 配置:清除

这些解决了我的问题。

关于php - 带 API 防护的 Laravel 5.2 多重身份验证使用错误的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426564/

相关文章:

php - 我如何获得通过与 Laravel 5/Eloquent 的两个多对多关系关联的不同类别列表?

php - 在laravel中从字符串输入日期到mysql数据库

javascript - 链接不要求用户确认

javascript - 在 PHP 中获取窗帘元素 ID 的文本

facebook - 保存电子邮件地址 Facebook + Parse (Swift)

ruby-on-rails - 设计中带有动态主题的自定义确认邮件

php - 如何在 Laravel 5+ 中获取客户端 IP 地址

php - 如何使用 InsertInto 将清理后的用户输入存储在数据库中

php - 如何防止 PHP 中的 SQL 注入(inject)?

javascript - 如何使用 Office-js-helper 的身份验证获取用户信息?