我封装了个 验证session是否存在 函数,
并且我在 http的每个访问路由页面都调用了
**我想问下 大家在不用任何框架的情况下 如何验证是否登录状态的**
~~~
然后我一些用户中心的页面头部都加了这个一个调用函数,
但是我尝试谢了个post接收的接口 就在第一句就加了这个,当尝试注册的时候既然通过了注册成功
虽然他提示 没有找到session 但是后面的代码他依然执行了 不知道为什么!
IsSessionAdminLogin(w, r)
~~~
~~~
func IsSessionAdminLogin(w http.ResponseWriter, r *http.Request) {
//result := false
sess2 := globalsessions.SessionStart(w, r)
getUser := sess2.Get("muser")
if getUser == nil {
//result = false
//http.Redirect(w, r, "logout", 301)
fmt.Fprintln(w, "没有找到session,重定向到退出Loout")
return
} else {
//result = true
fmt.Fprintln(w, "恭喜!登录成功")
return
}
//return result
}
~~~
简单点说,一个解决方案,你把返回值加上,比如说是一个bool,返回true 或者false, 然后你这个函数调用的时候,会得到一个返回值,你根据拿到的返回值进行判断,if true ,执行什么命令,else 执行退出的命令。显然你这个函数中的return,只是让你这个函数退出,并没有让调用的主函数退出。思路是正确的,其实可以考虑做个filter,需要调用这个函数的页面路由用map 管理起来,每次去查询就行了。我个人的想法。
#23
更多评论
<a href="/user/channel" title="@channel">@channel</a>
楼主代码应该是想打印确认是否已经登录了,没有返回值没有问题
我今天也遇到这个问题了,看看有没有高手出来指点一下
#2