【发布时间】:2015-09-23 13:29:54
【问题描述】:
我正在尝试使用 Laravel 设置 JWT。
我基本上是在关注 jwt 包和另一个页面的信息: https://github.com/tymondesigns/jwt-auth https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps
我有一些不同之处,主要是用户模型称为 Human,但大多数情况下我遵循上面的示例
问题是我无法验证用户。每当我通过发布请求到达路线时,我都会收到 401 错误。所以我在 php artisan tinker 控制台中做了一些调查。如果我选择数据库中的第一个用户,检查他们的密码哈希就可以了,这很有效:
$human = App\Human::first();
Hash::check('12345', $human['password']); // true
但如果我尝试生成 JWT,它会失败。
JWTAuth::attempt(['email' => $human['email'], 'password' => '12345']); // false
我不确定从这里去哪里调试。
更新: 关键是我的“用户”表实际上被称为“人类”。我的数据库中有一个用户表,当我删除它时,我得到一个用户表不存在的错误。
我确实在我的 jwt 配置中更改了这一行:
'user' => 'App\Human',
为了反映我的“用户”模型被称为人类,我进入 laravel auth.php 并在那里设置我的模型。仍然当我调用 JWTAuth 尝试方法时,它会尝试访问“用户”表,而不是实际存储密码的“人类”表。
显然我可以更改表名,但这会使应用程序的另一部分变得丑陋。所以我想我需要的是一种配置 jwt-auth 以查看不同表的方法。
【问题讨论】:
-
您找到可行的解决方案了吗?
-
我们已将“用户”移回“应用/用户”模型。我更喜欢使用名为“humans”的表并使用名为“App\Human”的模型,但我不知道如何配置 JWT 包来执行此操作。
-
你解决了这个问题吗?