1

因此,已经使用 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;
}
4

1 回答 1

0

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

于 2017-06-29T14:40:36.450 回答