宝哥软件园

Laravel实现了ApiToken身份验证请�

编辑:宝哥软件园 来源:互联网 时间:2021-08-19

1.打开迁移文件数据库/migrations/2014 _ 10 _ 12 _ 00000 _ create _ users _ table.php。我们需要改变用户表的结构

2.我们需要将api_token字段添加到用户表中,也就是说,我们的token存储在数据库中,并在适当的位置添加一行

$table-string('api_token ',60)-unique();3.通过php artisan migrate命令配置数据库并生成用户表

4.在用户表中,随意添加一条记录,只要api_token字段设置为123456。这样,我们生成一个用户,然后我们可以使用令牌值123456登录。

5.返回到路由文件routes.php,在其中添加一个测试路由,并用laravel中间件保护它

route :3360 group(['中间件'=['auth.api']),function(){ route : get('/t '),function(){ return ' ok ';});});这里使用auth.api中间件,中间件定义如下图:

在中间件文件中创建WebToken.php,然后在Kernel.php文件中注册中间件

Auth.api'= app http 中间件 webToken:3360class,6。打开刚刚创建的webtoken中间件代码,如下所示

?phpnamespace App Http 中间件;使用闭包;使用照明支持正面授权;类webToken{ /** *处理传入的请求。* * @ param Illuminate Http Request $request * @ param Closure $ next * @ return mixed */public函数句柄($ Request,Closure $ next){ if(auth :3360 guard(' API ')-guest()){ return response()-JSON([' code '=401,' msg'=' token']未设置。}返回$ next($ request);代码中Auth:guard的API(“API”)是配置文件夹中的auth.php文件

7.经过上面的修改,当我们在/t的url路径中直接向服务器发送请求时,服务器会返回一个401错误和一条类似token未设置’的消息,这也是之前在handle()方法中设置的。也就是说,/t受到了我们的授权中间件的保护。如果我们想让我们的请求正常通过这个中间件,我们必须提供令牌。

8.由于我们之前在用户表中添加了一个api_token为123456的数据,现在我们再次向服务器请求/t,但是这次我们添加了api_token,也就是说,

…/t?api_token=123456

正常情况下,服务器会返回‘ok’,这意味着auth中间件允许这个请求通过,当我们将123456修改为其他值时,这个请求就不能通过auth中间件了。

以上文章解决了api在laravel中验证jwt refresh token的问题,也就是边肖分享给大家的所有内容,希望能给大家一个参考,更多的支持我们。

更多资讯
游戏推荐
更多+