首页 > 其他分享 >项目上线后退出功能异常

项目上线后退出功能异常

时间:2024-01-16 12:16:28浏览次数:37  
标签:index 上线 fmt back 后台 sessionA 退出 gin 异常

后台有个a标签

<li><a href="/back/managers/logout" onclick="if(!confirm('确认要退出系统么?')){return false;}">退出</a></li>

应该是访问下面方法的

	//后台退出
		back.GET("/managers/logout", Back.Managers{}.Logout)

 

// 退出
func (m Managers) Logout(c *gin.Context) {
	currentTime := time.Now()
	year, month, day := currentTime.Date()
	hour, minute, second := currentTime.Clock()
	yearMonthDay := fmt.Sprintf("%d-%d-%d %d:%d:%d", year, month, day, hour, minute, second)
	fmt.Println("Logout", yearMonthDay)
	sessionA := sessions.Default(c)
	sessionA.Delete("back_login_manager_id")
	sessionA.Save()
	sessionA.Delete("back_login_manager_name")
	sessionA.Save()
	fmt.Println("开始")
	sessionA.Clear()
	time.Sleep(1 * time.Second)
	fmt.Println("结束")
	sessionA.Save()
	//跳转
	c.Redirect(http.StatusMovedPermanently, "/back/index/index")
	c.Abort()
}

 结果直接去back/index/index

session不删除各种怪事,出现过打开页面检查就能正常退出

有时会去访问logout方法退出,但是点击浏览器返回页面能回到后台,还能查看后台功能,离大谱

有时登录上之后,访问后台其它功能会跳转到登录页,去看代码,逻辑没问题

一度怀疑go与其它后端语言差别这么大吗?

最后不知在哪里看的资料,要在路由处加删除禁用缓存的代码,才恢复

func Router() *gin.Engine {
    r := gin.Default()
    // 清除页面缓存中间件
    r.Use(func(c *gin.Context) {
        c.Writer.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
        c.Writer.Header().Set("Pragma", "no-cache")
        c.Writer.Header().Set("Expires", "0")
        c.Next()
    })

 

标签:index,上线,fmt,back,后台,sessionA,退出,gin,异常
From: https://www.cnblogs.com/keketoloveme/p/17967360

相关文章

  • Golang实现程序优雅退出的方法 有哪些 ?
    Golang实现程序优雅退出的方法有哪些?原创磊丰Go语言圈2024-01-1608:31发表于广东听全文学习与交流:Go语言技术微信群商务合作加微信:LetsFeng   现在就开始你的Go语言学习之旅吧!人生苦短,let’sGo.      Goland全家桶激活码,永久有效,亲测可用,限时免......
  • openGauss学习笔记-198 openGauss 数据库运维-常见故障定位案例-分析查询效率异常降低
    openGauss学习笔记-198openGauss数据库运维-常见故障定位案例-分析查询效率异常降低的问题198.1分析查询效率异常降低的问题198.1.1问题现象通常在几十毫秒内完成的查询,有时会突然需要几秒的时间完成;而通常需要几秒完成的查询,有时需要半小时才能完成。198.1.2处理办法通......
  • 系统的标准异常类
    #define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<stdexcept>classmaker{public:maker(intage){if(age<0orage>150){throwstd::out_of_range("年龄不在范围内\n");}else{......
  • 宏定义导致数据异常问题
    /**Copyright(C)gtc.*/#ifndef_GTC_QUEUE_H_INCLUDED_#define_GTC_QUEUE_H_INCLUDED_#include"gtc_core.h"typedefstructgtc_queue_sgtc_queue_t;structgtc_queue_s{gtc_queue_t*prev;gtc_queue_t*next;};#definegtc......
  • 刚上线三天,OpenAI GPT 商店的「AI 女友」就已泛滥丨 RTE 开发者日报 Vol.126
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • element-forge在Linux Centos中打包构建时遇到的异常问题解决方案
    环境:LinuxCentOS8x64electron:27.1.0electron-forge:7.1.0electrondev依赖包"devDependencies":{"@electron-forge/cli":"^7.1.0","@electron-forge/maker-deb":"^7.1.0","@electron-forge/maker-rpm&quo......
  • 京东ES支持ZSTD压缩算法上线了:高性能,低成本 | 京东云技术团队
    ​ 1前言在《ElasticSearch降本增效常见的方法》一文中曾提到过zstd压缩算法[1],一步一个脚印我们终于在京东ES上线支持了zstd;我觉得促使目标完成主要以下几点原因:Elastic官方原因:zstd压缩算法没有在Elastic官方的开发计划中;Elastic的licenes变更,很多功能使用受限ES产品......
  • SpringBoot enter door基础_配springBoot项目,读取配置,配置全局异常捕获
    1、Spring是重量级企业开发框架 EnterpriseJavaBean(EJB) 的替代品,Spring为企业级Java开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java对象(PlainOldJavaObject,POJO) 实现了EJB的功能虽然Spring的组件代码是轻量级的,但它的配置却是重......
  • Go Lang 异常处理
    C#,JAVA等语言通过try...catch...finally实现错误的捕获和处理GoLang异常处理的设计思想中主张如果一个函数可能出现异常,那么应该把异常作为返回值,没有异常就返回nil每次调用可能出现异常的函数时,都应该主动进行检查,并做出反应,这种 if 卫述语句所以异常应该总是掌握在......
  • 异常的基本语法
    最基本的语法#define_CRT_SECURE_NO_WARNINGS#include<iostream>intfunc(inta,intb){if(b==0){//2抛出异常throw12;//抛出一个int类型的异常}returna/b;}voidtest(){inta=10;intb=0;//1把......