解决gin设置session中间件Cookie无效

要在gin中实现cas登陆可以查看这篇文章:gin CAS身份认证

背景

使用gin对接cas认证,当认证通过后需要记录登陆状态避免重复重定向到登录页

问题以及分析

当使用session时会发现登陆过后能正常写入session,但是第二次请求时候又会被重定向到cas登陆,这是因为cookie没用被正常写入。检查前端请求的响应头和请求头的cookie时发现报错“尝试通过Set-Cookie标头设置Cookie时被阻止,因为它具有“Secure“属性,但未通过安全连接发送”。这是由于本地服务是通过http而不是https协议,所以不允许setcookie。
在这里插入图片描述
在这里插入图片描述

解决方案

1、如果你的服务是http的,在创建session时,需要将Secure设置为false,

	store.Options(sessions.Options{
		Path:     "/",
		Domain:   "",        // 设置你的域名,留空则为当前域名
		MaxAge:   86400 * 7, // 一周
		HttpOnly: true,
		Secure:   false, // 在生产环境中设置为true以确保安全传输
	})

2、如果你的服务通过nginx反代,还需要检查nginx的配置中是否有Secure:配置,如果有需要将其删除。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值