如何解决将安全标签添加到仅Rails 5.2.x API会话cookie
我正在为项目使用仅Rails API设置。 我已经设法使其使用自定义cookie信息,但是即使在生产环境中服务器处于HTTPS连接上,我也似乎无法使其添加安全标签。
由于api与前端使用的网址不同,这导致我的cookie无法保存。
这是cookie的设置
config.middleware.use Actiondispatch::Cookies
config.middleware.use Actiondispatch::Session::CookieStore
config.middleware.insert_after Actiondispatch::Cookies,Actiondispatch::Session::CookieStore,:key => '_session_id',same_site: :none,secure: :true,expire_after: 14.days,httponly: true
我还尝试过安全:Rails.env.production?没有成功
以下是会话控制器供参考:
class SessionsController < ApplicationController
def create
@user = User.find_by(email: session_params[:email])
if @user && @user.authenticate(session_params[:password])
login!
render json: {
logged_in: true,user: @user
}
response.set_header('Set-Cookie','Secure; SameSite=None')
else
render json: {
status: 401,errors: ['no such user','verify credentials and try again']
}
end
end
def is_logged_in?
if logged_in? && current_user
render json: {
logged_in: true,user: current_user
}
else
render json: {
logged_in: false,message: 'no session found'
}
end
end
def destroy
logout!
render json: {
status: 200,logged_out: true
}
end
private
def session_params
params.require(:user).permit(:username,:email,:password)
end
结束
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。