Я бы генерил уникальное число для каждого пользователя. Далее можно это число слепить с солью и сгенерить ключ для симметричного шифрования. Ключи не хранить, а генерацию ключа использовать такую, что при одном входе мы бы получали один и тот же ключ. Получил ты токен, сгенерил ключ, спрятал токен шифрованный в бд. Нужен токен: достал, сгенерил ключ, расшифровал, использовал.