微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel 5.3 API

用户在浏览器上输入用户名和密码并成功登录时.

我喜欢在用户登录后发出一些API请求.

Laravel 5.3在routes文件夹中提供api.PHP.

在api.PHP我已经包括

Route::group(['middleware' => ['auth']], function () {
    Route::get('/test', function (Request $request) {
         return response()->json(['name' => 'test']);
    });
});

在浏览器上请求domain.com/api/test时,出于某种原因它会重定向到/ home?

不需要API令牌.

解决方法:

如果要在api.PHP中指定路由,则需要使用auth:api中间件.所以使用你的例子就是:

Route::group(['middleware' => ['auth:api']], function () {
    Route::get('/test', function (Request $request) {
         return response()->json(['name' => 'test']);
    });
});

关于Token auth和Laravel 5.3的注意事项:

>如果您设置了laravel的认身份验证系统,则还需要为用户添加api_token列.如果您使用数据库播种机,您可能需要添加以下内容
$table-> char(‘api_token’,60) – > nullable();
给你的用户表播种机.或者,只需手动添加列,并使用随机的60-char键填充该列.
>发出请求时,您可以将api_token添加为URL / Querystring参数,如下所示:
domain.com/api/test?api_token=[your 60 char key].
您也可以将密钥作为标题发送(如果使用Postman或类似),即:
标题:授权,价值:持票人[你的60个字符密钥].
>如果令牌不正确,我命令获得有用的错误,而不仅仅是重定向登录,还发送包含所有请求的以下标头:
标题:接受,价值:application / json.这允许在App / Exceptions / Handler.PHP中的unauthenticated()函数中的expectedJson()检查正常工作.

我发现很难从Laravel找到关于使用带有5.3的令牌认证的明确文档,我认为这是因为有一个驱动器可以使用Passport,它以不同的方式支持令牌.这篇文章可能有助于大多数工作:https://gistlog.co/JacobBennett/090369fbab0b31130b51

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐