Laravel 5.3在routes文件夹中提供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