从 curl 使用 Auth0 调用 Laravel 5.3 API 时未经授权的用户
Posted
技术标签:
【中文标题】从 curl 使用 Auth0 调用 Laravel 5.3 API 时未经授权的用户【英文标题】:Unauthorized user when calling Laravel 5.3 API with Auth0 from curl 【发布时间】:2017-04-05 04:52:42 【问题描述】:寻找 Auth0 的便利性来整理我的 Angular 2 客户端和 Laravel 5.3 API 之间的 JWT。我已遵循(并仔细检查了我已遵循)Auth0 的入门指南:
https://auth0.com/docs/quickstart/backend/php-laravel
但似乎无法让它对我进行身份验证。当我卷曲如下:
curl --request GET --url http://localhost/api/test --header 'authorization: auth0_id_token'
我明白了:
Unauthorized user curl: (6) Could not resolve host: auth0_id_token
在我的\routes\api
中,我有:
Route::get('/test', array('middleware' => 'auth0.jwt', function()
return "Hello " . Auth0::jwtuser()->name;
));
我正在使用这个生成id_token
:
https://auth0.com/docs/api/authentication#!#post--oauth-ro
当我转到 (https://manage.auth0.com/#/users) 时,可以看到 Auth0 认为用户已登录。
任何关于我应该在哪里尝试和调试的指针?
【问题讨论】:
【参考方案1】:在 HTTP Authorization
标头中包含不记名令牌的正确方法是使用 Bearer
身份验证方案,因此您的标头应该是:
Authorization: Bearer [auth0_id_token]
此外,您从curl
收到的错误还表明该命令未按您的预期进行解析,更具体地说,似乎'authorization: auth0_id_token'
被解析为多个参数,这导致auth0_id_token
部分被考虑作为尝试解析主机时将失败的 URL;尝试使用双引号。
【讨论】:
非常感谢@João Angelo。这正是问题所在,虽然我检查了所有 Laravel 位是否正确,但我没有发现我的 Curl 是错误的。如果它可以帮助其他人,工作命令是: curl --request GET --url localhost/api/test --header "Authorization: Bearer auth0_id_token"。再次感谢。以上是关于从 curl 使用 Auth0 调用 Laravel 5.3 API 时未经授权的用户的主要内容,如果未能解决你的问题,请参考以下文章
Auth0 .NET Core - 从 access_token 读取权限
Auth0 登录调用 Youtube Data API v3
使用 VS Code 中的 Auth0 为 REST API 调用调试 VUE 应用程序