【发布时间】:2023-01-29 22:37:27
【问题描述】:
红宝石:3.1.3 导轨版本:6.1.6.1 Chrome 版本:109.0.5414.119
在会话控制器的 cookie 中设置 user_id,但它没有显示在后续请求中,并且在 chrome 中查看应用程序检查器它没有显示任何 cookie 集。
这是设置cookie的控制器和函数
class Api::Auth::UserController < ApplicationController
def create_session
user = User.find_by(email: params[:email])
if user.present?
head :unauthorized unless user.authenticate(params[:password])
session[:current_user_id] = user.id
@success = true
debugger
else
head :unauthorized
end
end
当session[:current_user_id] 是nil 时,除了我抛出的 401 unauthorized 之外,没有其他错误消息。
在 firefox 上完美运行,但出于某种原因,Chrome 不会保留试图设置的 cookie。
【问题讨论】:
-
Rails.application.config.session_store在您的 Rails 应用程序中是如何配置的?是否有可能通过在某处调用before_action来禁用 API 控制器中的会话或 cookie?
标签: ruby-on-rails ruby google-chrome session