beego登录退出与检查登录过滤器
// 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登录退出与检查登录过滤器的更多相关文章
- flask 实现登录 登出 检查登录状态 的两种方法的总结
这里我是根据两个项目的实际情况做的总结,方法一(来自项目一)的登录用的是用户名(字符串)和密码,前后端不分离,用form表单传递数据:方法二用的是手机号和密码登录,前后端分离,以json格式传递数据, ...
- selenium+python+eclipse 实现 “问卷星”网站,登录与检查登录示例!
1.使用selenium+python+eclipse实现的登录"问卷星",问卷星访问地址:https://www.sojump.com/ 2.实现步骤:1)进入链接---首页-- ...
- 【ASP.NET】UCenter实现多站点同步登录退出
利用UCenter实现discuz论坛和应用网站同步登录和退出功能 测试环境:Discuz! X3.2.UCenter 1.6..Net Framework 4.0 进入Discuz 后台的UCent ...
- asp.net 使用IHttpModule 做权限检查 登录超时检查(转)
IHttpModule 权限 检查 登录超时检查 这样就不需要每个页面都做一次检查 也不需要继承任何父类. using System;using System.Collections.Generic; ...
- ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间
ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间
- mysql基础:登录退出,修改用户密码,添加删除用户
今天刚开始学习mysql,最先接触用户管理,给大家分享下 注:mysql中命令的大小写都可以的 ==========登录退出相关=================== root@jack-deskto ...
- MySQL数据库基础(一)(启动/停止、登录/退出、语法规范及最基础操作)
1.启动/停止MySQL服务 启动:net start mysql 停止:net stop mysql 2.MySQL登录/退出 登录:mysql 参数:如果连接的是本地服务器,一般用命令:my ...
- [转] 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变. 前言 vue2 正式版已经发布将近一个月了, 国庆过后就用在了公司的两个正式项目上, 还有一个项目下个月也会采用 vue2 ...
- php session 登录退出验证
login.html 负责收集用户填写的登录信息 <html><head><title></title></head><body> ...
随机推荐
- 使用Docker镜像安装saltshaker
要求 Saltstack < 2019 Python >= 3.6 Mysql >= 5.7.8 (支持Json的Mysql都可以) Redis(无版本要求) RabbitMQ (无 ...
- 记一次mysql的问题处理@20181225
需求:由于某种原因,导致一次分库分表的环境中ddl添加字段和索引没有完全成功,比如100个分库,只有部分修改成功,需要将没有修改成功的库和表找出来,在手动去执行. 由于线上环境,这里模拟还原一下该问题 ...
- linux命令su,sudo 使用和区别
1- sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升的权限运行单个命 ...
- elasticsearch index 过程
(1)index request 到某一个Node(选择node的方式是采用round-robin)方法,此node 称为coordinate node,继续当前index request应该执行在哪 ...
- Flask之RESTFul API前后端分离
Flask之RESTFul API前后端分离 一:虚拟环境搭建的两种方式 1 pipenv的使用 pip install --user pipenv安装pipenv在用户目录下 py -m site ...
- Word报表生成
/// <summary> /// 生产报表 /// </summary> /// <param name="strTemplate">< ...
- NetCore使用使用Scaffold-DbContext命令生成数据库表实体类
一.为了模拟项目,本处创建了一个NetCore的Web项目.打算在Models文件夹下生成数据库表的实体类. 二.在程序包管理控制台,输入“Scaffold-DbContext "Serve ...
- 安装oracle11gR2
一.通过百度云等途径下载oracle11gR2 二.安装步骤 1,解压缩文件,将两个压缩文件一起解压. 2,在setup.exe右键--属性--兼容性,勾“以管理员身份运行此程序”. 3,双击“set ...
- Python3标准库:enum枚举
1. enum枚举 枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的.不可变的.在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的. 1.1 创建枚举 可以使用class语法派生Enu ...
- 我的第一个原生Web Components——滑块(SingleSlider)
写着写着,就会跑偏,没错又走上了一个岔道……就是不知道这条岔道以后会不会越来越宽,有的说他是未来,有的说…… 这里不知道,也不做什么评断.减少一些重复性的工作,提高开发效率这是最根本的.说白了就是偷懒 ...