【问题标题】:How to remove a user session from store in Gorilla?如何从 Gorilla 的商店中删除用户会话?
【发布时间】:2020-10-14 12:55:33
【问题描述】:

使用Gorilla session,我希望能够从商店中找到用户的会话并使之无效。用例是当版主想要立即踢出辱骂用户时。

我查看了文档,但我看到的只是如何处理请求:

func (s *FilesystemStore) Get(r *http.Request, name string) (*Session, error)

感谢您提供的有关如何查找和删除特定用户会话的提示,此时仅知道 userID

【问题讨论】:

  • 即使在这种情况下,也应该有一种方法可以在向其 cookie 添加kicked 字段之前找到用户。你会怎么做?

标签: go session gorilla


【解决方案1】:

不幸的是,Store API 目前在最新版本 (v1.2.0) 中没有提供会话删除/失效的方法,但根据 FilesystemStore 的 Save method 中的评论,您可以强制删除:

如果会话的 Options.MaxAge

请注意,如果您使用其他商店进行会话,则需要查阅其文档。

【讨论】:

  • 嗯,首先我需要在存储中找到用户的会话(顺便说一句,我使用redis作为会话存储),然后我可以将Options.MaxAge设置为0。所以主要问题是如何找到基于 UserID 的会话?
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2021-04-12
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
相关资源
最近更新 更多