2011-11-07 44 views

回答

4

为什么你需要这个?存在允许跟踪会话超时的timeoutable选项。我可能是错的,但是令牌是有时间存在的cookie键,并且它们被浏览器跟踪。从设计(钩):

每一个记录设置要检查它的会话是否已经超时 与否,基于上次请求时间的时间。如果是,则记录被注销并且 被重定向到登录页面。另外,每次请求到达并设置了记录时,我们将其范围会话中的最后一个请求时间设置为 验证以下请求中的超时。

---- UPDATE(不要放在commets为大)---

在大多数情况下,当您使用已登录,也没有要求获得来自外部servises认证。因此,在用户登录的情况下(即会话cookie存在且会话有效),同时她从外部服务器注销,这意味着她可以使用您的站点,直到您的会话到期。同样,一旦用户需要认证,就会使用外部服务。因此,当您的网站上的会话过期并且用户尝试使用外部服务登录时,她将被重定向到她将登录的外部网站(或者如果已经登录的话)。然后,外部服务重定向回到您的网站提供的回调(大多数情况下路径为/ auth /:provider/callback),其中您的控制器(或默认由devise提供)将根据需要创建用户和会话。

+0

我不认为这是真实的Twitter或Facebook登录。当用户登录Facebook而不是从我的网站登录时会发生什么? – CamelCamelCamel

+0

查看答案中的更新。 –

+0

谢谢。我仍然需要使用户从工作系统中失效,所以他会再次使用他的Twitter帐户登录。 – CamelCamelCamel