// ShowLogin 登陆显示
func (c *UserController) ShowLogin() {
username := c.Ctx.GetCookie("username")
if username != "" {
c.Data["username"] = username
c.Data["check"] = "checked"
} c.TplName = "login.html"
} // HandleLogin 登陆处理
func (c *UserController) HandleLogin() {
username := c.GetString("username")
password := c.GetString("password")
remember := c.GetString("remember")
beego.Info(remember)
if username == "" || password == "" {
beego.Info("数据不能为空!")
c.Redirect("/login", 302)
return
}
o := orm.NewOrm()
user := models.User{}
user.UserName = username
err := o.Read(&user, "UserName")
beego.Info(user)
if err != nil {
beego.Info("账号不存在", err)
c.Redirect("/login", 302)
} else {
if user.Password == password {
// c.Ctx.WriteString("登录成功")
if remember == "on" {
c.Ctx.SetCookie("username",username,time.Second*3600)
}else{
c.Ctx.SetCookie("username",username,-1)
}
c.SetSession("username",username) c.Redirect("/index",302)
} else {
c.Ctx.WriteString("密码错误")
c.Redirect("/login", 302)
}
} } // HandleLogout 退出登录
func (c *UserController) HandleLogout() {
c.DelSession("username")
c.Redirect("/",302)
}

在router.go路由配置文件里面加入,注意如果路径是 /article_list,"/article/*"是匹配不到的

package routers

import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
) func init() {
beego.InsertFilter("/article/*",beego.BeforeRouter, filterFunc)
} var filterFunc = func(ctx *context.Context){
username := ctx.Input.Session("username")
if username==nil{
ctx.Redirect(302,"/login")
}
}

beego登录退出与检查登录过滤器的更多相关文章

  1. flask 实现登录 登出 检查登录状态 的两种方法的总结

    这里我是根据两个项目的实际情况做的总结,方法一(来自项目一)的登录用的是用户名(字符串)和密码,前后端不分离,用form表单传递数据:方法二用的是手机号和密码登录,前后端分离,以json格式传递数据, ...

  2. selenium+python+eclipse 实现 “问卷星”网站,登录与检查登录示例!

    1.使用selenium+python+eclipse实现的登录"问卷星",问卷星访问地址:https://www.sojump.com/ 2.实现步骤:1)进入链接---首页-- ...

  3. 【ASP.NET】UCenter实现多站点同步登录退出

    利用UCenter实现discuz论坛和应用网站同步登录和退出功能 测试环境:Discuz! X3.2.UCenter 1.6..Net Framework 4.0 进入Discuz 后台的UCent ...

  4. asp.net 使用IHttpModule 做权限检查 登录超时检查(转)

    IHttpModule 权限 检查 登录超时检查 这样就不需要每个页面都做一次检查 也不需要继承任何父类. using System;using System.Collections.Generic; ...

  5. ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

    ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

  6. mysql基础:登录退出,修改用户密码,添加删除用户

    今天刚开始学习mysql,最先接触用户管理,给大家分享下 注:mysql中命令的大小写都可以的 ==========登录退出相关=================== root@jack-deskto ...

  7. MySQL数据库基础(一)(启动/停止、登录/退出、语法规范及最基础操作)

    1.启动/停止MySQL服务 启动:net start mysql    停止:net stop mysql 2.MySQL登录/退出 登录:mysql 参数:如果连接的是本地服务器,一般用命令:my ...

  8. [转] 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能

    这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变. 前言 vue2 正式版已经发布将近一个月了, 国庆过后就用在了公司的两个正式项目上, 还有一个项目下个月也会采用 vue2 ...

  9. php session 登录退出验证

    login.html 负责收集用户填写的登录信息 <html><head><title></title></head><body> ...

随机推荐

  1. openlayers编辑区域

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. gulp常用插件之gulp-filter使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-filter这是一款可以把stream里的文件根据一定的规则进行筛选过滤. 更多使用文档请点击访问gulp-filter工具官网. 安装 ...

  3. github的版本控制master和branch develop

    一.git版本控制原理 master(主分支), develop(分支),虽然是主分支和分支,却是平级关系,develop可以理解为开发库,master为生产库. 本地版本:master, devel ...

  4. 为什么MYSQL分页时使用limit+ order by会出现数据重复问题

    问题描述: MYSQL采用limit进行翻页查询时,搭配order by ,在翻到第二页的时候可能会出现第一页的数据,  示例sql如下: select  a,b from c where d = ' ...

  5. Windows修改账户名称和任务管理器中服务对应的用户名称

    新安装的Windows10,在激活的时候如果选择使用微软账户登录,比如我的微软账户名是QQ邮箱,系统激活后,系统盘用户目录(users)下面的用户目录文件夹名称为QQ邮箱的前几位数字,这样其实也在使用 ...

  6. 修改或忘记MySQL密码

    一.创建/修改MySQL密码 刚装好只能允许一个本地账户root@localhost访问 刚开始默认无密码 新增密码root,输入此命令后回车再回车即可 修改密码,输入此命令后回车,输入原密码后回车即 ...

  7. PP: Neural ordinary differential equations

    Instead of specifying a discrete sequence of hidden layers, we parameterize the derivative of the hi ...

  8. C++——动态内存分配3

    动态创建多维数组  new 类型名T[下标表达式1][下标表达式2]…: 如果内存申请成功,new运算返回一个指向新分配内存首地址的指针,是一个T类型的数组,数组元素的个数为除最左边一维外各维下标表达 ...

  9. <软件工程基础>个人项目——数独

    参见GitHub:https://github.com/1773262526/Software-Foundation Personal Software Process Stages         ...

  10. Hackintosh相关资源站

    猫叔博客 https://www.maoshu.cc/ 大神RehabMan https://bitbucket.org/RehabMan/ dsdt/ssdt打补丁译文 https://blog.c ...