Как настроить длину токена, сгенерированного в: token_authenticatable в devise - Rails 3? - PullRequest
1 голос
/ 04 апреля 2011

Сгенерированный токен, кажется, содержит около 20 символов, как мне изменить длину на что-то другое?

Я проверил файл devise.rb и попробовал оба:

config.token_authentication_key = :access_key    
config.token_authenticatable.length = 40

произведеноэта ошибка:

config/initializers/devise.rb:110:in `block in <top (required)>': undefined method `token_authenticatable' for Devise:Module (NoMethodError)

и

config.token_authentication_key = :access_key
config.token_authentication_key.length = 40

выдавали эту ошибку:

/config/initializers/devise.rb:110:in `block in <top (required)>': undefined method `length=' for :access_key:Symbol (NoMethodError)

и оба выдавали мне ошибки при попытке запустить консоль.

Есть ли еще способ сделать это?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Devise не предоставляет функции для установки длины этого токена.Вам придется переопределить метод generate_token в вашей модели, чтобы изменить результат этого токена.

1 голос
/ 04 апреля 2018

Я добился изменения длины reset_token_password, переопределяющей метод friendly_token.Например:

module Devise def self.friendly_token(_length = 20) SecureRandom.urlsafe_base64(5).tr('lIO0', 'sxyz') end end

(Помните, что токены хэшируются в БД, поэтому даже если вы успешно установите более короткий код, если вы сделаете user.reset_password_token, вы увидите длинный код, которыйэто хешированный токен, а не настоящий.)

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