问题描述
我是ngIf
的新手。我想创建一个用户可以登录和注销的系统。用户注销后,我要删除与该用户有关的会话。经过多次搜索,我发现我可以做到:
session.Options.MaxAge = -1
但是此代码仅删除用户系统上的cookie。如果我一遍又一遍地使用相同的Cookie调用Golang
,则与该Cookie相关的会话具有相同的值。
/logout
如果我每次使用相同的cookie多次致电func main() {
echoRouter := echo.New()
echoRouter.POST("/login",login)
echoRouter.POST("/logout",logout)
echoRouter.Start(":8000")
}
func login(c echo.Context) error {
user := c.FormValue("user")
pass := c.FormValue("pass")
if user == "mgh" && pass == "123" {
session,_ := store.Get(c.Request(),"sessionID")
session.Values["adminLevel"] = 3
err := session.Save(c.Request(),c.Response())
if err != nil {
return c.JSON(http.StatusInternalServerError,map[string]string{
"response": "We have run into a problem!",})
}
return c.JSON(http.StatusOK,map[string]string{
"response": "Welcome!",})
}
return c.JSON(http.StatusUnauthorized,map[string]string{
"response": "Your credentials isn't correct!",})
}
func logout(c echo.Context) error {
session,er := store.Get(c.Request(),"sessionID")
if er != nil {
return c.JSON(400,map[string]string{
"Response": "Bad Request",})
}
adlvl,_ := session.Values["adminLevel"]
fmt.Printf("Your adminlevel is %v",adlvl)
session.Options.MaxAge = -1
session.Save(c.Request(),c.Response().Writer)
return c.JSON(201,map[string]string{
"Response": "You Were Logged out",})
}
时,每次收到以下消息:
您的管理员级别为3
我希望当我两次致电/logout
时,第二次收到以下消息:
管理员级别为零
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)