@@ -149,14 +149,15 @@ func (auth *Auth) Login(context *gin.Context, session sessions.Session) {
149149}
150150
151151func (auth * Auth ) Logout (context * gin.Context , session sessions.Session ) {
152+ session .Set (JWT_TOKEN_KEY , "" )
152153 session .Clear ()
154+ // session.Options(SessionOptions(true))
153155 err := session .Save ()
154156 if err != nil {
155157 auth .notAuth (context )
156158 return
157159 }
158160 context .HTML (http .StatusOK , "logout.tmpl" , gin.H {})
159- context .Abort ()
160161}
161162
162163func (auth * Auth ) notAuth (context * gin.Context ) {
@@ -176,6 +177,29 @@ func (auth *Auth) NotAuthWithError(context *gin.Context, errorMessage string) {
176177 context .Abort ()
177178}
178179
180+ func (auth * Auth ) RefreshToken (context * gin.Context , session sessions.Session , claim * UACClaims ) {
181+ signedToken , err := auth .JWTCrypto .EncryptJWT (claim .UAC , & claim .UacInfo , claim .AuthTimeout )
182+ if err != nil {
183+ auth .Logger .Error ("Failed to Encrypt JWT" , zap .Error (err ))
184+ return
185+ }
186+
187+ if session .Get (JWT_TOKEN_KEY ) == nil || session .Get (JWT_TOKEN_KEY ).(string ) == "" {
188+ auth .Logger .Info ("Not refreshing JWT as it looks like the user has logged out" ,
189+ append (utils .GetRequestSource (context ),
190+ zap .String ("InstrumentName" , claim .UacInfo .InstrumentName ),
191+ zap .String ("CaseID" , claim .UacInfo .InstrumentName ),
192+ )... )
193+ return
194+ }
195+ session .Set (JWT_TOKEN_KEY , signedToken )
196+ if err := session .Save (); err != nil {
197+ auth .Logger .Error ("Failed to save JWT to session" , zap .Error (err ))
198+ return
199+ }
200+ return
201+ }
202+
179203func (auth * Auth ) isUac16 () bool {
180204 return auth .UacKind == "uac16"
181205}
@@ -191,18 +215,3 @@ func Forbidden(context *gin.Context) {
191215 context .HTML (http .StatusForbidden , "access_denied.tmpl" , gin.H {})
192216 context .Abort ()
193217}
194-
195- func (auth * Auth ) RefreshToken (context * gin.Context , session sessions.Session , claim * UACClaims ) {
196- signedToken , err := auth .JWTCrypto .EncryptJWT (claim .UAC , & claim .UacInfo , claim .AuthTimeout )
197- if err != nil {
198- auth .Logger .Error ("Failed to Encrypt JWT" , zap .Error (err ))
199- return
200- }
201-
202- session .Set (JWT_TOKEN_KEY , signedToken )
203- if err := session .Save (); err != nil {
204- auth .Logger .Error ("Failed to save JWT to session" , zap .Error (err ))
205- return
206- }
207- return
208- }
0 commit comments