Одноразовый пароль AuthLogic (persistence_token) — какая конфигурация требуется для его использования?

Кто-нибудь может подтвердить, какая именно конфигурация требуется для работы одноразового пароля (persistence_token)?

Из того, что я могу понять до сих пор, это следующее, однако это не работает для меня, поэтому я должен ошибаться:

  • передать дополнительный параметр URL «user_credentials = xxxxpersistence_tokenxxxx»
  • вопрос - требуются ли какие-либо другие параметры URL помимо этого? любой идентификатор пользователя или имя пользователя?
  • иметь поле persistence_token в моей таблице базы данных (которое есть, и я вижу, что оно заполнено)
  • иметь «действует _as _authentic» в моей пользовательской модели в обычном режиме
  • вопрос: требуется ли «действовать _как _аутентичный» в каждой из моих собственных моделей?

Когда я ввожу URL-адрес в браузере непосредственно к одному из моих собственных ресурсов модели, следуя приведенному выше, я вижу в журналах:

(а) первоначальный запрос — перенаправлен на http://localhost:3000/user_session/new

(b) а затем для этого перенаправления:

Processing UserSessionsController#new (for 127.0.0.1 at 2009-12-03
06:14:24) [GET]
  Parameters: {"action"=>"new", "controller"=>"user_sessions"}
  User Columns (3.4ms)   SHOW FIELDS FROM `users`
  User Indexes (0.9ms)   SHOW KEYS FROM `users`
Rendering template within layouts/application
Rendering user_sessions/new
  SQL (0.6ms)   SELECT count(*) AS count_all FROM `users` WHERE
(last_request_at > '2009-12-02 20:04:24')
Completed in 182ms (View: 151, DB: 5) | 200 OK [http://localhost/
user_session/new]

(c) Но тогда веб-страница оказывается на странице входа в систему, а не автоматически на той странице, которую я искал, т. Е. Я ожидал, что одноразовый пароль позволит AuthLogic автоматически выполнить сеанс, а затем аутентификацию?

Спасибо

PS. Интересно, связано ли это с этим авторским кодом, который я нашел в params.rb?

def single_access_allowed_request_types(value = nil)
  rw_config(:single_access_allowed_request_types, value, ["application/rss+xml", "application/atom+xml"])
end

person Greg    schedule 02.12.2009    source источник


Ответы (1)


Я думаю, что он у меня есть сейчас. Я сделал:

  • Передайте параметр (не заголовок) user_credentials=‹>

  • Имейте столбец single_access_token в таблице пользователей.

  • Поместите следующий метод в users_controller:

private
  def single_access_allowed?
    true
  end
  • Для других контроллеров (т.е. кроме application, user, user_sessions) я поставил: «before_filter :require_user» (не уверен, есть ли способ сделать это в контроллере, который будет обрабатывать это автоматически?)

Благодарность

person Greg    schedule 04.12.2009