slower
@slower

Laravel Socialite: почему не сохраняется access_token?

Здравствуйте,
Я использую Laravel Socialite Providers для того, чтобы авторизовываться с помощью Вконтакте.


После того, как я логинюсь, то могу получить все данные о пользователе, а также access_token, но если я перезагружу страницу, то я получу ошибку:
Client error: `POST https://oauth.vk.com/access_token` resulted in a `401 Unauthorized` response: {"error":"invalid_grant","error_description":"Code is invalid or expired."}


У меня есть 3 идеи как это исправить:
  • Sessions
  • Cookies
  • Local Storage

Я пытался их использовать, но пока что все безуспешно.

Код, если нужен:
1. routes/api.php
Route::get('intermediate-path', function(){
        $user = Socialite::driver('vkontakte')->user();

        $user_check = User::where('vk_id', '=', $user->id)->first();
        if ($user_check === null) {
            DB::insert('insert into users (vk_id, name, email) values (?, ?, ?)', [
                $user->id, $user->name, $user->email
            ]);

            echo "created";

        } else {
            echo "logged in";
        }
    });


2. Config/Services.php
'vkontakte' => [
    clientId = env('VKONTAKTE_KEY');
    clientSecret = env('VKONTAKTE_SECRET');
    redirectUrl = 'http://localhost:8000/api/auth/intermediate-path';
],


3. vendor/socialiteproviders/vkontakte/Provider.php
https://github.com/SocialiteProviders/VKontakte/bl...
  • Вопрос задан
  • 466 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Kostik_1993
Web Developer
Потому что токен одноразовый. Вы должны запоминать не его, а пользователя который войдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы