Неопределенное свойство: Illuminate \ Http \ Response :: $ refresh_token - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать логин с паспортом, используя токен доступа и refre sh токен:

class AuthController extends Controller
{
    const REFRESH_TOKEN = 'refreshToken';

    public function login(Request $request)
    {

        $request->validate([
            'username' => 'required|email',
            'password' => 'required',
        ]);

        return $this->proxy('password', [
            'username' => $request->username,
            'password' => $request->password,
        ]);

    }

    public function proxy($grantType, array $data = [])
    {
        $data = array_merge($data, [
            'client_id'     => config('services.passport.client_id'),
            'client_secret' => config('services.passport.client_secret'),
            'grant_type'    => $grantType
        ]);

        $response = Request::create(route('passport.token'), 'POST', $data);

        $data = app()->handle($response);

        return $data->refresh_token;

        // Create a refresh token cookie
        Cookie::queue(
            self::REFRESH_TOKEN,
            $data->refresh_token,
            864000, // 10 days
            null,
            null,
            false,
            true // HttpOnly
        );

        return [
            'access_token' => $data->access_token,
            'expires_in' => $data->expires_in
        ];
    }
}

Что происходит:

  1. Когда я return или dd() $data в методе proxy(), я возвращаю правильные данные на вкладке сети google chromes:

    {token_type: "Bearer", expires_in: 600,…} access_token: "right_access_token" expires_in: 600 refresh_token: "right_refresh_token" token_type: "Bearer"

  2. Когда я пытаюсь получить $ data-> refresh_token, я получаю эту ошибку:

Неопределенное свойство: Illuminate \ Http \ Response :: $ refresh_token

Редактировать 1

Я также пробовал: return (array)json_decode($data, true); и все, что я получаю, - это пустой массив. Без (массива) нет ничего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...