Rails-安全会话Cookie无法正常运行

时间:2018-07-02 06:18:22

标签: ruby-on-rails security session session-cookies

我有一个Rails应用程序,它依赖于第三方应用程序进行身份验证。首次使用one_time_token并与第三方进行身份验证。成功后,将设置带有第三方应用程序名称的会话

session['third_party_session_id'] = 'xxxxxxxxxxxxxxxxxxgddddddddddddd'

以上情况发生在before_action

before_action :authenticate

对于其他每个动作,将调用相同的before_action。但由于现在我们拥有third_party_session_id,因此可以使用third_party_session_id进行身份验证。

所以方法看起来像这样

def authenticate
  if params[:one_time_token]
    //authenticate using one time token and set session
  elsif session['']
    //authenticate using session id
  else
    //unauthorized
   end
end

这在没有安全的情况下可以正常工作:session_store.rb中为true

当我添加安全性时:session_store.rb中为true,

Rails.application.config.session_store :cookie_store, key: 'third_party_session_name', secure: true

一次身份验证成功。在下一个请求

预期的行为:应该存在session ['third_party_session_id']并且身份验证应该成功 实际行为:会话为零

以上内容在http环境中进行了测试。在这里,即使cookie不安全,也不应使会话无效,这是我期望的。

0 个答案:

没有答案