【问题标题】:Laravel JWT Authentication without User Model没有用户模型的 Laravel JWT 身份验证
【发布时间】:2018-06-08 15:54:47
【问题描述】:

我正在尝试为同一个项目中的移动用户构建一个 laravel 应用程序和 API。主网站实际上是网站的后端,需要我已经实施的适当身份验证。并且 api 还需要使用不同的凭据进行身份验证(不是来自网络的用户模型)。

此时我已经在我的项目中添加了 dingo api 并且它工作正常。但现在我还需要为 dingo 添加 jwt。问题是 jwt 默认使用 App\User 模型,我不想使用 Web 用户凭据对 api 用户进行身份验证。请建议我解决这个问题的最佳方法是什么。谢谢

【问题讨论】:

标签: php laravel api jwt dingo-api


【解决方案1】:

查看文档看起来就像您在使用 php artisan vendor:publish 发布的 config.php 文件中指定了身份验证提供程序

auth 设置为您的提供商: https://github.com/tymondesigns/jwt-auth/blob/develop/config/config.php#L252

或者您可以在app.php 配置文件中指定您使用的驱动程序和/或用户提供程序:

https://github.com/laravel/laravel/blob/master/config/auth.php#L69 https://github.com/laravel/laravel/blob/master/config/auth.php#L70

更新:

  1. 进行迁移以保存客户表:php artisan make:migration create_clients_table

  2. 根据需要更新迁移文件。

  3. 使用php artisan make:model Client创建客户端模型

  4. 更新模型以匹配迁移并添加任何关系。

  5. 运行迁移。

这应该可以让this 工作

您可能需要相应地更新为:

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

或者可能:

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

https://github.com/laravel/laravel/blob/master/config/auth.php#L46

【讨论】:

  • 是的,我已经尝试过 auth.php 配置。我是 laravel 的新手。我是否必须为此创建另一个提供程序?在我的 auth.php 中,我为 api 保护启用了第二个数组。和 ` 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'clients' => [ 'driver' => 'eloquent ', '模型' => App\Client::class, ], ],`
  • 您实施的“正确身份验证”是什么?
  • 是的,我已经尝试过 auth.php 配置。我是 laravel 的新手。我是否必须为此创建另一个提供程序?在我的 auth.php 中,我为 api 保护启用了第二个数组。 [link] prntscr.com/ht7cjv [/link] 然后是我的 routes/api.php 中的 api 路由,所以从技术上讲它应该使用客户端模型吗?
  • laravel 内置身份验证
  • 在这种情况下添加另一个键无济于事,除非您引用该键
猜你喜欢
  • 1970-01-01
  • 2020-03-18
  • 2020-01-05
  • 2017-10-18
  • 2019-01-07
  • 1970-01-01
  • 2016-10-08
  • 2018-03-03
  • 2012-08-09
相关资源
最近更新 更多