Получить токен доступа по идентификатору токена из таблицы oauth_access_tokens - PullRequest
0 голосов
/ 21 мая 2019

Возникают проблемы при попытке найти действительные токены пользователя, которые уже добавлены в БД.Вот пример токена доступа на предъявителя:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjhjM2NlYmYyY2NiNjU4NzRlYjA2ZWFjOTFiOWEyZjJjMjMyNjRhMjFkOTZlNDU5MzFjZWMzMjU1MWIwMjRlZGVmMTIyNmI2NTI5ZDA4ZGQzIn0.eyJhdWQiOiIxIiwianRpIjoiOGMzY2ViZjJjY2I2NTg3NGViMDZlYWM5MWI5YTJmMmMyMzI2NGEyMWQ5NmU0NTkzMWNlYzMyNTUxYjAyNGVkZWYxMjI2YjY1MjlkMDhkZDMiLCJpYXQiOjE1NTgzNzQ0MjcsIm5iZiI6MTU1ODM3NDQyNywiZXhwIjoxNTg5OTk2ODI3LCJzdWIiOiIxNCIsInNjb3BlcyI6WyIqIl19.RKR62AvgYpW66pOu0lX9BdYx4JEyFQCfC8ULrWHFteKpH8EMzUsxGRpRmW1rj3cclE9Ieu3L-c_25tLB4WPBQ37h9a47qDSe60EAUIR84qoRaBCuhmyrehftMnDYtb1VROz2N1J4ab8Pq28Eq8r5ZrGHOSniiGmSZ0SSsrCWamrI82PNJEP4cwkoMx7rGZ_rBBNKrzJGsEK44bkocaipo75YhmADg3qA6n0XWM9UpSm735WEdTKtmXmdsbokK0n-Y-rrzFwSnCnOPFg139Co2lGBto4h1k70e9mI_e82XCBz_JBPJ77sbznQh_ce7uzZ9IyZldVjU6kONJbEZcHJOk1PhTjMtF_nQjvb_F2ZEFwX2dMryF5FM4mktiylBgS0_s-XwO9oOLzkd-CdT-0C_0TjxVa2_fSaZQXDIclYg5kf4n4tduZEIa-r4Fdt9PEBSA0dS7J6RPKwUmI0qLpOyK5ZD1k0AXwnDa2fk71Tp36BUmuo1qSBaUKn4JoIgXPcfN1PhAikp3t7N1WkB8BFbSRXm1OKUBz20ow9V0IL3Gcw88XE6A3EUZxAfAnaoXfC_dVyZModRRbYvb77JGx1JL7tMg5WLb-lI1wZjpNlFhEeeIN0VNDGcwMWcNN8LCcOKK45FqINpWrAtsiHc1cYenZl3nWRqQ3OAwCxM7UQ1t0

А вот как он (или любой другой токен) хранится в базе данных:

8c3cebf2ccb65874eb06eac91b9a2f2c23264a21d96e45931cec32551b024edef1226b6529d08dd3

Попытался использовать его в качестве токена доступа без удачи,Вот мой пример кода, где я хочу отправить токен доступа обратно, если он уже существует для пользователя (используя oauth на Facebook, чтобы получить мой токен доступа API):

    public function callback(SocialAccountService $service)
    {
        try {
            $facebookData = Socialite::driver($this->provider)->user();

        } catch (\Exception $e) {

            return $this->redirect();
        }

        $user = $service->createOrGetUser($facebookData, $this->provider);

        $token = $user->tokens->filter(function ($token) {
            return $token->revoked !== true;
        })->first();

        if (!$token) {
            $token = $user->createToken('new-token', ['*']);
        }

        return new OauthTokenResource($token);
    }

Так что, если это так, когда пользователь существует и существуетесли токены найдены в БД, я не могу сгенерировать (получить) реальный токен доступа, подобный этому:

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjhjM2NlYmYyY2NiNjU4NzRlYjA2ZWFjOTFiOWEyZjJjMjMyNjRhMjFkOTZlNDU5MzFjZWMzMjU1MWIwMjRlZGVmMTIyNmI2NTI5ZDA4ZGQzIn0

просто получить идентификатор токена, который нельзя использовать в качестве токена доступа.Надеюсь на вашу помощь, ребята.

...