我有一个仅使用rails api的应用程序[config.api_only = true]
,我通过以下几行启用了cookie:
在application.rb中:
config.middleware.insert_after ActionDispatch::ParamsParser, ActionDispatch::Cookies
config.middleware.insert_after ActionDispatch::ParamsParser, ActionDispatch::Session::CookieStore
在application_controller.rb
中include ActionController::Helpers
include ActionController::Cookies
我还添加了secret_token.rb,如下所示:
Rails.application.config.secret_token = 'token'
在我的控制器中,我试图像这样存储会话:
def index
#other codes
session[:userid] = useridstring
render :text => session[:userid]
end
注意:但是,在chrome中执行此操作后,我正在检查cookie并且没有设置...
然后在同一个控制器中,但在另一个动作中,我试图读取这样的会话:
def readsession
userId = session[:userid]
render :text => userId
end
并且没有呈现任何内容.. :(
我错过了什么吗?
我尝试按照here的答案建议我设置config.api_only = false
,但结果是一样的(我没有设置cookie,当在另一个控制器中读取时,会话仍然是空的
很抱歉这是一个基本问题(或初始配置问题),我在ruby和rails中仍然很新..
答案 0 :(得分:6)
由于API始终与客户端无关,因此最好使用令牌进行身份验证。
以下是:
token
表格中添加名为users
的列。