【问题标题】:{"error":"Unauthenticated."} Laravel 5.3 Personal Access tokens{"error":"Unauthenticated."} Laravel 5.3 个人访问令牌
【发布时间】:2017-12-15 10:09:15
【问题描述】:

该错误仅在使用个人访问令牌时发生,如果我使用密码客户端获取令牌,则可以正常进行。

这是我用来测试它正在通过的路线

Route::get('/test', function() {
    return "hello";
})->middleware('auth:api');

这是我用来获取访问令牌的函数

public function testToken() {
    $user = User::where("id", 12)->first();

    $token = $user->createToken("TokenName")->accessToken;

    return $token;
}

这是我正在尝试使用的访问令牌(从testToken() 获得的那个)

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjNlNTliODI1ZWVlZTYzZjRkMjYxZTliMDRiZTdlOGM2OTE2OGIxODIzOWVhZDQ3YjkwODY0ZGQxODU2ZmZkYjc1NmNiNzE2NTRjOGQ1N2U0In0.eyJhdWQiOiI1IiwianRpIjoiM2U1OWI4MjVlZWVlNjNmNGQyNjFlOWIwNGJlN2U4YzY5MTY4YjE4MjM5ZWFkNDdiOTA4NjRkZDE4NTZmZmRiNzU2Y2I3MTY1NGM4ZDU3ZTQiLCJpYXQiOjE0OTk3NzA4ODgsIm5iZiI6MTQ5OTc3MDg4OCwiZXhwIjoxODE1MzAzNjg4LCJzdWIiOiIxMiIsInNjb3BlcyI6W119.TkAanA7Un5Z4BHYVm1tBUtzQXDNl_z26fHcbzC-wNC-7zHg3GCqnWicgKxZsuE5_1zuDikqZj6tKKkRou5K2ftA9A6l3wBMxmyQZy-BZl20CbzyovYw5kfFwOdJYNKeAF5g0jBVXJdFCDvHexiQGrfzoj9b95v9jRNfdDbhrJd-1wHMQpIps7qjn3rtVIupwc2HpajJ4hADgZUCGjcV8YpOpWoaTt8lZocJUlUTbeNE0AwdI_c9tSA48qaSZizOIb1DYLSLZjeqKvRJFHvplAhTQN9glbF598Nws0FqkvnEWk-3nXL8EejJ155EAyNwKkDnc3e6W23JqjdGzXiHsTRmVDdizLrkk86Z-24oj2KJwcdPYMGkcnggqIZ8hn7ikGSoTV73G_nW_VUBOidHzcYKgMgXPQGST2gC3yPgAnQJPmXBUyc98hMz4LbDNkXKYcsMp23kUxC1caO3JYE4LljVLaQaxdhqZlaTBcaus5HtcRYrYMmZhgxaXpy-VOM2fljBW-QgM1rs8D9GwBuxecBmgPvbN6HqnYTlYRwmxbfOtKoeT7H5aK3_a36at1dL1V3K0S176v91ZGfWoxlYLzq_uWxpq_T9SOkaoxjeMfYiVjJyXMDsTbmE7PrQQcEwKNVc9DdcQgJmewd-Sr15O66inhH8j7-4_WPysxS6SXBY

我在标头中传递令牌(注意我正在使用邮递员进行测试)

Accept:application/json
Authorization:Bearer **TOKEN**

做一些谷歌搜索我发现人们已经通过设置令牌的到期日期来修复它,尽管这在我的情况下不起作用。

我还发现有人建议在提供程序中更改 Passport.php,但我没有要编辑的文件...我不知道是否可能是因为我安装了护照错误或类似的东西。我确实遵循了安装文档

【问题讨论】:

    标签: php laravel laravel-passport


    【解决方案1】:

    相信你会仔细阅读文档,问题就会得到解决。 https://laravel.com/docs/5.4/passport#installation https://laravel.com/docs/5.4/passport#personal-access-tokens

    此路由创建新的个人访问令牌。它需要两条数据:令牌的名称和应分配给令牌的范围:

    const data = {
        name: 'Token Name',
        scopes: []
    };
    
    axios.post('/oauth/personal-access-tokens', data)
        .then(response => {
            console.log(response.data.accessToken);
        })
        .catch (response => {
            // List errors on response...
        });

    【讨论】:

    • 不完全是,我确实通读了它们......护照本身正在工作,并且能够获得访问令牌......但是当我通过令牌时,事件虽然我对密码令牌使用相同的方法,它仍然返回“未经身份验证”。
    • @TheMysticalWarrior 通过代币名称获取代币?
    • 对不起,你的措辞让我有点困惑...... xD
    • 我刚刚测试了一个新版本,一切正常,建议您检查config / auth.php和User.php是否进行了特殊更改
    • 是的发现了问题...使用2个表进行身份验证...所以它试图找到该表中不存在的信息...至少我知道现在的问题是什么xD
    猜你喜欢
    • 2017-03-26
    • 2020-04-09
    • 2017-05-23
    • 2017-02-11
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多