0

任何人都可以确认使一次性密码(persistence_token)有效所需的配置吗?

从我到目前为止可以解决的问题如下,但这对我不起作用,所以我一定是错的:

  • 传递“user_credentials=xxxxpersistence_tokenxxxx”的附加 URL 参数
  • 问题 - 除此以外是否还需要任何其他 URL 参数?任何用户 ID 或用户名?
  • 在我的数据库表中有 persistence_token 字段(它是,我可以看到它已填充)
  • 在我的用户模型中正常使用“acts _as _authentic”
  • 问题:在我自己的每个模型中都需要“acts _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 中找到的这个 authlogic 代码有关

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

1 回答 1

0

我想我现在已经拥有了。我做了:

  • 传递 user_credentials=<> 的参数(不是标头)

  • 在您的用户表中有 single_access_token 列

  • 在 users_controller 中加入以下方法:

private
  def single_access_allowed?
    true
  end
  • 对于其他控制器(即除了应用程序、用户、user_sessions),我输入:“before_filter :require_user”(不确定控制器中是否有一种方法可以自动处理它?)

谢谢

于 2009-12-04T05:57:30.090 回答