gpt4 book ai didi

laravel - 我如何使用方法 try() - Laravel 7

转载 作者:行者123 更新时间:2023-12-04 00:17:04 24 4
gpt4 key购买 nike

我想弄清楚 Auth::attempt() 是如何工作的。它不返回任何错误,但也不起作用,只返回 false。
我试图定义表名,我试图添加 guard ,但我不确定它是如何工作的。
根据 Laravel 文档,如果我没有记错的话,我应该为每个身份验证添加一个保护(我需要使用不同的表进行身份验证)。

https://laravel.com/docs/7.x/authentication#introduction


这就是我定义新 guard 的方式:(我不确定它是否与我的问题有关)
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'web' => [
'driver' => 'session',
'provider' => 'guest',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
我的问题是如何验证用户使用 Auth::attempt() 从我想要的表中检索数据,还是应该使用我自己的方法?
我是 Laravel 的新手,所以有点困惑。

最佳答案

一个明确的错误是,你不能有两个同名的守卫。
下一个错误可能是,您没有添加提供者 'guest' ,但这只能猜测。
我会这样做:

  • 为您的第二个 Web 提供商提供另一个名称。
  • 确保你的第一个 web auth guard 再次按预期工作
  • 开始实现第二个网络身份验证保护

  • 例如,您的 auth.php 可能如下所示:
    'guards' => [
    'web' => [
    'driver' => 'session',
    'provider' => 'users',
    ],
    'guest' => [
    'driver' => 'session',
    'provider' => 'guest',
    ],
    'api' => [
    'driver' => 'token',
    'provider' => 'users',
    'hash' => false,
    ],
    ],
    'providers' => [
    'users' => [
    'driver' => 'eloquent',
    'model' => App\Models\User::class,
    ],
    'guest' => [
    'driver' => 'eloquent',
    'model' => App\Models\Guest::class,
    ],
    ]
    当然,您还必须定义模型 Guest
    然后你可以做这样的事情:
    Auth::guard('web')->attempt($credentials)
    // or
    Auth::guard('guest')->attempt($credentials)
    需要考虑的事情
    有时您 认为 您需要不同的表进行身份验证,但实际上,使用一个基本用户表和身份验证保护,然后使用其他表将用户连接到更多数据和角色,这可能是一种更简单的方法。

    关于laravel - 我如何使用方法 try() - Laravel 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62954552/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com