用户身份验证 - 将用户ID传递给每个页面 - 最佳实践?

时间:2013-06-21 02:10:25

标签: ruby-on-rails session authentication cookies oauth

我正在开发基于Sinatra的应用程序,目前正在使用LinkedIn进行身份验证。我页面上的一些内容是基于数据库的,因此在我路由某人之前我需要该用户的用户ID。

我试图通常了解网站如何跟踪每个页面上的用户ID?我有一些想法:

1]将用户ID放在cookie中并通过它执行会话管理。

2]使用全局user-id变量。我不确定这在我的应用程序中是如何工作的,因为会有多个用户等。

3]将用户id传递给每个页面(haml / html)作为局部变量,并将其传递回params中的路径!

2]和3] =>听起来很复杂。

通常的方法来处理这个问题? 我可以使用任何宝石等建议。

1 个答案:

答案 0 :(得分:0)

1]可能是“正确”的答案,但是如果您已经有权访问特定用户的会话,那么您已经知道他们是谁,因此cookie只是服务器和浏览器必须具备的额外“东西”。发送。换句话说,如果您的服务器已经有一个您有权访问的会话,并且该会话已经映射到该用户,那么您已经关注该用户了。

2和3]需要对提供给客户端的页面内容进行状态管理或服务器端处理。