Laravel Passport说刷新令牌无效

时间:2017-06-28 21:14:00

标签: php laravel laravel-passport refresh-token

所以,使用Passport在一个Laravel应用程序中设置了一个API,我正在另一个Laravel应用程序中使用它。几乎一切都运行良好,但是当我尝试使用刷新令牌时,我在Passport端获得刷新令牌无效的消息。我将刷新令牌存储在长度为2000个字符的数据库字段中,并想知道这是不够的,还是我的刷新功能中的某些内容是错误的。有什么想法吗?

private function refreshToken($token) {
    $http = $this->newClient();
    try {
        $response = $http->post($this->_url . '/oauth/token', [
            'form_params' => [
                'grant_type' => 'refresh_token',
                'refresh_token' => $token->refresh_token,
                'client_id' => $this->_clientId,
                'client_secret' => $this->_secretKey,
                'scope' => 'products orders',
            ],
        ]);
    } catch(\Exception $ex) {
        Log::error($ex);
        $token = $this->newToken();
        return $token;
    }
    $token = Token::saveToken($response);
    return $token;
}

1 个答案:

答案 0 :(得分:0)

好的,弄清楚导致问题的实际情况,并不是刷新令牌无效。这意味着它刚刚过期,并且代码设置为在这种情况下获得新令牌。相反,问题是当我检查令牌到期时,但在该检查和使用它的呼叫之间,令牌将过期。所以,我在过期检查中添加了一些填充,现在它正在顺利运行。活到老,学到老。 :)