Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel TokenGuard类始终需要api_令牌_Laravel_Laravel 5.2_Laravel 5.1_Laravel 5.3_Laravel 5.4 - Fatal编程技术网

Laravel TokenGuard类始终需要api_令牌

Laravel TokenGuard类始终需要api_令牌,laravel,laravel-5.2,laravel-5.1,laravel-5.3,laravel-5.4,Laravel,Laravel 5.2,Laravel 5.1,Laravel 5.3,Laravel 5.4,我使用的是AngularJs和Laravel 5.4 在默认保护中,我将webguard更改为api。最后它看起来像下面 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 当我从Angular Js使用用户名和密码发送请求时…我总是得到无效的凭据,因为 TokenGuard类有一个名为validate的方法,该方法需要api\u令牌值,但我在登录页面上 我假设为了获得令牌,我需要登录方法中

我使用的是AngularJs和Laravel 5.4

在默认保护中,我将
webguard
更改为
api
。最后它看起来像下面

'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
],
当我从Angular Js使用用户名和密码发送请求时…我总是得到无效的凭据,因为

TokenGuard
类有一个名为
validate
的方法,该方法需要api\u令牌值,但我在登录页面上

我假设为了获得令牌,我需要登录方法中的
$this->guard(web)


这是正确的方法还是我遗漏了什么?

默认情况下,
routes/api.php
中定义的所有路由都具有
api
中间件,如
app/Providers/RouteServiceProvider::mapApiRoutes()
中所定义。因此,您始终需要传递api_令牌

您可以做的是,在api路由中,像这样定义登录路由

Route::post('login', 'api\AuthController@login'); //out of the group
从AngularJS发帖

$http.post({
    url: 'http://localhost/api/login',
    data: $scope.userda,
    headers: {
        Authorization: ''
    }
}).then(...)
然后使用
auth:api

Route::group(['middleware' => 'auth:api'], function(){
    //Other routes here
});

在angular中,将授权头的值设置为
api\u token
。因此,在登录之前,它将是空的,在登录之后,它将具有用户api_令牌的值

默认情况下,
routes/api.php
中定义的所有路由都具有
api
中间件,如
app/Providers/RouteServiceProvider::mapApiRoutes()
中所定义。因此,您始终需要传递api_令牌

您可以做的是,在api路由中,像这样定义登录路由

Route::post('login', 'api\AuthController@login'); //out of the group
从AngularJS发帖

$http.post({
    url: 'http://localhost/api/login',
    data: $scope.userda,
    headers: {
        Authorization: ''
    }
}).then(...)
然后使用
auth:api

Route::group(['middleware' => 'auth:api'], function(){
    //Other routes here
});

在angular中,将授权头的值设置为
api\u token
。因此,在登录之前,它将是空的,在登录之后,它将具有用户api_令牌的值

您在这里的报价中缺少结束单报价
auth:api
,第二个问题是如何在auth:api中间件中包装登录路由?令牌此时不存在。我需要在我的登录页面中使用用户名和密码的令牌。只有这样,我才能使用令牌打更多的电话。如果您需要有关我的问题的更多信息,请告诉我。我的登录路径不在群中。如何使用
TokenGuard
登录?TokenGuard类有一个需要令牌的验证方法。。。但我的登录请求尚未获取令牌。我的意思是,为了从tokenguard验证用户名和密码,你将在控制器的登录方法中写入什么?哦,现在我明白你的意思了。在
routes/web.php
中定义登录路径。您将有权访问普通身份验证。然后从那里返回Json(),并包含所有用户详细信息。所有的路由都要经过
api
进行TokenGuard身份验证。为什么是webguard?为什么不是api guard?我不能使用api guard登录吗?您在这里的报价中缺少结束单报价
auth:api
,第二个问题是如何在auth:api中间件中包装登录路由?令牌此时不存在。我需要在我的登录页面中使用用户名和密码的令牌。只有这样,我才能使用令牌打更多的电话。如果您需要有关我的问题的更多信息,请告诉我。我的登录路径不在群中。如何使用
TokenGuard
登录?TokenGuard类有一个需要令牌的验证方法。。。但我的登录请求尚未获取令牌。我的意思是,为了从tokenguard验证用户名和密码,你将在控制器的登录方法中写入什么?哦,现在我明白你的意思了。在
routes/web.php
中定义登录路径。您将有权访问普通身份验证。然后从那里返回Json(),并包含所有用户详细信息。所有的路由都要经过
api
进行TokenGuard身份验证。为什么是webguard?为什么不是api guard?我不能使用api guard登录吗?