2016-11-17 154 views
0

我最大的问题,现在要做的laravel 5.3基于会话的认证是认证知道怎样使用VUE js和VUE路由器

我头痛这一点,因为使用API​​来获取和使用发送数据到服务器IM VUE

所以香港专业教育学院试图与AUTH中间件做登录的事情,但它不停地说,未经授权即使我登录

有啥与认证的问题,我如何可以实现基于会话的认证?

回答

1

如果您使用Laravel作为API,您可能需要执行基于令牌的身份验证。主要想法是使用'api'后卫(使用TokenGuard类),而不是默认的'网络'后卫(你可以在congif/auth.php中更改)。这样Laravel将在每个请求的授权头中寻找一个不记名令牌。

This is a decent walk through即将开始,但我确信还有很多其他优秀的博客文章和教程。

编辑:如果

不知道这是有帮助的,但在这里是使用自动化测试的例子。在我的ModelFactory中,我有一个api_token属性的用户模型,该属性设置为60个字符的随机(且唯一)字符串。这是一个简单的测试,以确保我可以检索用户的列表:

/** @test */ 
public function user_index_endpoint_returns_list_of_users() 
{ 
    $user = factory(User::class)->create(); 

    $this->get('/users', array(
       'Accept' => 'application/json', 
       'Authorization' => 'Bearer ' . $user->api_token 
      )) 
     ->assertResponseStatus(200) 
     ->seeJsonStructure([ 
      'users' 
     ]); 
} 

在我config/auth.php文件的顶部,我设置我的默认后卫“API”:

'defaults' => [ 
    'guard' => 'api', 
    'passwords' => 'users', 
], 

最后,在我的路由文件中,我设置了我的用户路由来使用'auth'中间件。

Route::group(['middleware' => 'auth'], function() { 
    Route::get('/users', '[email protected]'); 
}); 

因为我已经定义了“API”中间件作为我的默认,幕后Laravel将使用TokenGuard类来尝试验证我的要求。为此,它会在我的请求中查找不记名令牌,并将其与用户表进行比较。

+0

你可以给一个小片段如何做到这一点?这让我头疼 –

+0

我加入我的答案与一些示例代码。希望能帮助到你! – jackel414