Cor*_*len 9 cookies json ruby-on-rails
如何在Rails中响应application/json类型的请求时设置cookie?
控制器操作按预期工作,但没有设置cookie,并且响应中没有Set-Cookie标头.任何帮助将不胜感激.
控制器:
class SessionsController < ApplicationController
def create
@user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in(user)
.
.
cookies[:test] = 'Test cookie'
render json: @user
#render json: @user, set_cookie: 'test' #Also tried this
else
render text: 'Wrong username and/or password', status: 401
end
end
end
Run Code Online (Sandbox Code Playgroud)
路线:
Rails.application.routes.draw do
.
.
resources :sessions, :defaults => { :format => :json }
end
Run Code Online (Sandbox Code Playgroud)
cia*_*ben 15
我遇到了同样的问题.以下是我的解决方法:
response.set_cookie "name", "nic"
Run Code Online (Sandbox Code Playgroud)
我也想出了问题的原因.伪造保护在响应组合之前使会话无效.
要使用这些cookies方法,您需要跳过令牌的身份验证:
skip_before_action :verify_authenticity_token
Run Code Online (Sandbox Code Playgroud)