2017-04-17 32 views
0

我最近关注如何在演示应用程序(博客)中正确安装和设置Laravel Passport的官方文档。TokenMismatchException在护照中刷新令牌时laravel

我的路由设置以下these说明:

接下来,你应该将AuthServiceProvider的引导 方法中调用护照::途径方法。此方法将注册需要发出访问令牌和撤消访问令牌, 客户和个人访问令牌的 路线:

在使用邮差来运行我注意到,的OAuth /标记/刷新一些样本请求路由需要CSRF令牌。

运行工匠路线:名单我:

|  | POST  | oauth/token        |     | \Laravel\Passport\Http\Controllers\[email protected]  | throttle  | 
|  | POST  | oauth/token/refresh      |     | \Laravel\Passport\Http\Controllers\[email protected]  | web,auth  | 

如何正确刷新令牌任何想法?

+0

你有刷新路由设置为当它不应该使用'网络'中间件。 – jfadich

+0

我使用'Passport :: routes'注册路由,如文档中所述。这是一个错误? –

+0

这不是一个错误。你在哪里叫'Passport :: routes()'?它应该在'routes \ api.php'而不是'routes \ web.php' – jfadich

回答

1

CSRF可以期望的URI-S被禁用如https://laravel.com/docs/5.3/csrf所述。举个例子,我在VerifyCsrfToken类增加一个值作为URL路径$除了物业:

protected $except = [ 
    'oauth/authorize', 
]; 

和它的作品。

-2

,我所做的最后一次是从kernel.php禁用CSRF,我真的不知道这是不是最好的做法,但我注释掉:

App\Http\Middleware\VerifyCsrfToken::class 
+0

这是不推荐的,因为它会让你的应用程序容易受到csrf(等等)攻击 – erwan