Laravel5.1中使用JWT-Auth时,php artisan 报错不能使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel5.1中使用JWT-Auth时,php artisan 报错不能使用相关的知识,希望对你有一定的参考价值。

Laravel5.1中使用JWT-Auth时,php artisan 报错不能使用,错误为 The token could not be parsed from the request

参考技术A 添加一个sScrollY属性
var height=$(window).height();

$(document).ready(function()
$('#example').dataTable(

"sScrollY": height
);

如何使用 Laravel 5 设置 JWT-Auth

【中文标题】如何使用 Laravel 5 设置 JWT-Auth【英文标题】:How to set up JWT-Auth with Laravel 5 【发布时间】:2015-09-21 05:04:01 【问题描述】:

对 laravel 来说非常新,我正在用它为 Angularjs 应用程序创建后端 API,现在我被困在身份验证部分。

我决定使用https://github.com/tymondesigns/jwt-auth 来处理身份验证和令牌。

问题是,JWT-Auth 的 wiki 没有告诉我有关如何设置用户数据库的任何信息。它只告诉我我可以像这样进行身份验证

    $token = JWTAuth::attempt($credentials)

当然,在它有地方查找这些凭据之前,它是行不通的。

我该如何做到这一点?

谢谢!

【问题讨论】:

【参考方案1】:

Laravel 5 已经带有 User 模型,如果您已经使用 php artisan migrate 将 User 表迁移到您的数据库(在项目根目录的 .env 文件中设置数据库凭据),那么创建用户很简单.

用户模型的迁移文件也应该已经包含在内。

然后您可以通过制作数据库种子来创建用户,或者直接执行:

User::create(
     [
         'name' => 'you', 
         'email' => 'you@you.com', 
         'password' => Hash::make('secret')
     ]
);

然后您可以使用 JWTAuth 登录,并使用数组中的凭据,例如

['email' => 'you@you.com', 'password' => 'secret']

根据您调用User::create() 的位置,您可能必须包含

use App\User;

在控制器的顶部,其中 App 是您应用的命名空间。 App 是默认命名空间,但您可以轻松地将其更改为您想要的任何名称,它完全是可选的,您不必这样做。只需添加这个,以防你改变它。

编辑:从长远来看,scotch.io 上的这个外部tutorial 可能会为您提供更多帮助。

【讨论】:

知道如何将身份验证从电子邮件和密码对更改为用户名和密码等其他内容。 检查这里:laravel.com/docs/master/authentication#authenticating-users 不确定密码,或者它是否总是检查第二个参数与哈希。没有测试过。 我找不到这个例子。它说“不需要电子邮件”,但没有示例如何将其更改为其他任何内容。 :( 我认为在你的代码中将Auth::attempt(['email' => $email, 'password' => $password]) 更改为Auth::attempt(['username' => $username, 'password' => $password]) 是一个问题,你在哪里验证用户(或者你明白了要点,只需将电子邮件更改为用户名)。来自文档:The password value will be hashed. The other values in the array will be used to find the user in your database table.。我认为在不进行更彻底的更改的情况下更改密码字段是不可能的。最好在 SO 上为此打开一个新问题。 关于如何在身份验证过程中使用不同模型的任何想法?我为应用程序管理员使用默认用户实体,并为将通过 API 使用应用程序的客户创建了具有不同数据库表的其他实体。

以上是关于Laravel5.1中使用JWT-Auth时,php artisan 报错不能使用的主要内容,如果未能解决你的问题,请参考以下文章

基于 JWT-Auth 实现 API 验证

JWT Cookie 未正确存储 - Laravel

tymon/jwt-auth Laravel:无法验证令牌签名

使用 laravel 5.1 和 jwt 使用 cookie 进行身份验证

Laravel 6 中包 tymondesigns/jwt-auth 安装问题

tymondesigns/jwt-auth:如何创建过期令牌?