欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

access_token 值= true,Laravel 5.5和jwt-auth 1.0.0-rc.1 有大用 有大大用

access_token 值= true,Laravel 5.5和jwt-auth 1.0.0-rc.1 #1367            

 打开        
Manfred047 打开了这个问题             on 1 Nov 2017 ·7条评论        
 打开                    

access_token值= true,Laravel 5.5和jwt-auth 1.0.0-rc.1#1367                        

Manfred047 打开了这个问题                             on 1 Nov 2017 ·7条评论                        

注释

Man                    
 
 

Manfred047 评论 on 1 Nov 2017  
已编辑                                                 
                               

成功登录后,access_token值为“ true”。                                                    

登录方法:                                                    

`public function login(Request $ request)
{
$ credentials = $ request-> only('email','password');                                                    

    if ($token = $this->guard()->attempt($credentials)) {
        return $this->respondWithToken($token);
    }

    return response()->json(['error' => 'Unauthorized'], 401);
}`
                                                   

响应(成功):                                                    

{"access_token":"true","token_type":"bearer","expires_in":3600}                                                    

 
@金友                        
 
 

金友 评论 on 1 Nov 2017                                    

  正确答案

编辑config / app.php别名
'JWTAuth'=> Tymon \ JWTAuth \ Facades \ JWTAuth :: class,
'JWTFactory'=> Tymon \ JWTAuth \ Facades \ JWTFactory :: class,                  
                                     

`public function login(Request $ request)
{
$ credentials = $ request-> only('email','password');                                                        

	if ($token = JWTAuth::attempt($credentials)) {
		return $this->respondWithToken($token);
	}

	return response()->json(['error' => 'Unauthorized'], 401);
}
                                                       

`
开始享受                                                        

 
Man                        
 
 
作者                                    

Manfred047 评论 on 1 Nov 2017                                    

好的,可以。谢谢                                                        

@ tushark1                        
 
 

tushark1 评论了 on 26 Nov 2017  
已编辑                                                     
                                   

如1.0.0的官方文档中所述,请

在auth.php中进行更改                                                        


guards' => [
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],

                                                       

然后从控制器复制控制器                                                        

只需在控制器中更改此部分                                                        

    public function guard()
    {
        return Auth::guard();
    }
    
    //Change above to this
    
    public function guard()
    {
        return Auth::guard('api');
    }
    
                                                       

这对我有用,当然也应该对您有用:)                                                        

 
@gregorskii                        
 
 

gregorskii 评论 on 30 Nov 2017                                    

@ tushark12345的答案是正确的。如果您不更改auth.php中的防护类型,它将使用常规的auth流,该流将返回一个简单的truein attempt指示可以在下一行运行已验证的内容(查看返回,重定向等)。                                                        

@gregorskii                        
 
 

gregorskii 评论 on 21 Jan 2018                                    

我认为更新文档以将默认防护保留为Web是有意义的……在路由上指定它并定义Auth :: guard('api');更有意义。在JWT控制器中。                                                        

@smkoBa                        
 
 

smkoBa 评论 on 24 May 2018                                    

在config / auth.php中更改                                                        

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

                                                       

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

这是工作 ;)                                                        

 
@到达 到达 提到了这个问题 on 30 Jul 2018                            
文档需要更新 #1638                                
 打开                                
K                        
 
 

Kuppusamy-R 评论了 on 16 Sep 2019                                    

嗨,我使用的是Laravel 5.8。我收到一个错误“传递给Tymon \ JWTAuth \ JWT :: fromUser()的参数1必须是Tymon \ JWTAuth \ Contracts \ JWTSubject的实例,是给定的App \ User实例,在ProjectPath \ vendor \ tymon \ jwt-中调用第54行上的auth \ src \ JWTAuth.php”                                                        

来自  https://github.com/tymondesigns/jwt-auth/issues/1367

普通分类: