我正在开发一个 Rails 应用程序,它可以创建一个可以放在网站上的小部件。当小部件(在具有不同主机的网站上)显示给登录我的应用程序的用户时,我想向他显示一些额外的管理选项。
确定用户是否登录应用程序的最佳和最简单的方法是什么?
我正在考虑在用户登录时存储 IP,然后从发送到小部件控制器的请求中比较 IP。
我正在开发一个 Rails 应用程序,它可以创建一个可以放在网站上的小部件。当小部件(在具有不同主机的网站上)显示给登录我的应用程序的用户时,我想向他显示一些额外的管理选项。
确定用户是否登录应用程序的最佳和最简单的方法是什么?
我正在考虑在用户登录时存储 IP,然后从发送到小部件控制器的请求中比较 IP。
我遵循了Omniauth Railscast Episode并且一直在使用会话变量和 SessionsController 在用户登录和注销时创建和销毁会话。
class SessionsController < ApplicationController
def create
# create user if new user, or find user account if returning user.
session[:user_id] = user.id
redirect_to root_url # or wherever
end
def destroy
session[:user_id] = nil
redirect_to root_url # or wherever
end
end
然后在应用程序控制器中,
class ApplicationController < ActionController::Base
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
end
然后,您可以通过 轻松确定用户是否登录if current_user
,或者等效地,如果session[:user_id]
为 nil。
知识产权可能具有欺骗性。试试饼干。
编辑:不仅以积极的欺骗方式(即欺骗/Tor),而且如果两个人在来自同一个公共 IP 的不同站点上,那么你就有了错误的相关性。