AuthLogic одноразовый пароль (persistence_token) - какой конфиг требуется для его использования? - PullRequest
0 голосов
/ 03 декабря 2009

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

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

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

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

(a) первоначальный запрос - перенаправлен на 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

1 Ответ

0 голосов
/ 04 декабря 2009

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

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

  • В вашей таблице пользователей есть столбец single_access_token

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

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

спасибо

...