@romicohen
Системный Архитектор

Зачем Bearer token принято так нумеровать?

В этом примере 57|PkWbJf1KeuHJYyv16teE20VQ5SV265bbIqo9CQrA - '57' - это номер токена.

Многие движки используют подобный формат. Или вообще такой:

'Bearer 57|PkWbJf1KeuHJYyv16teE20VQ5SV265bbIqo9CQrA'

Какой в этом практический смысл?

Ведь из контекста и так понятно, что это Bearer token, а зачем передавать порядковый номер токена - для меня вообще загадка.
  • Вопрос задан
  • 462 просмотра
Решения вопроса 1
@romicohen Автор вопроса
Системный Архитектор
...единственное что пришло мне в голову - что делать индекс в БД по 'PkWbJf1KeuHJYyv16teE20VQ5SV265bbIqo9CQrA' - это такое себе :) да, получить по id а потом просто сравнить с токеном - так должно быть ощутимо быстрее при большом количестве записей, чем делать where('token','PkWbJf1KeuHJYyv16teE20VQ5SV265bbIqo9CQrA'). Наверное это и есть ответ.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Barmunk
К примеру, в Laravel sanctum этот номер является id в таблице токенов.
На основе этого, можно написать метод по поиску инстанса модели по токену.

public static function findToken($token)
    {
        if (strpos($token, '|') === false) {
            return static::where('token', hash('sha256', $token))->first();
        }

        [$id, $token] = explode('|', $token, 2);

        if ($instance = static::find($id)) {
            return hash_equals($instance->token, hash('sha256', $token)) ? $instance : null;
        }
    }

https://github.com/laravel/sanctum/blob/2.x/src/Pe...
Ответ написан
Ваш ответ на вопрос

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

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