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> ...
随机推荐
- HTML+PHP+MySQL 制作最基础的登录页面及验证
第一步 进入mysql操作终端 新建一个数据库web1:create database web1; 然后在这个数据库里面新建一张表test:create table test(user varchar ...
- 推荐15款Google Chrome 插件
Google Chrome是由Google开发的免费网页浏览器.Chrome是化学元素“铬”的英文名称,过去也用Chrome称呼浏览器的外框.Chrome相应的开放源代码计划名为Chromium,而G ...
- 刷题22. Generate Parentheses
一.题目说明 这个题目是22. Generate Parentheses,简单来说,输入一个数字n,输出n对匹配的小括号. 简单考虑了一下,n=0,输出"";n=1,输出" ...
- 如何使用Mbp模块构建应用.
上一篇文章https://www.cnblogs.com/mbpframework/p/12073102.html,介绍了一下Mbp的框架.其实这个框架写出来主要是为了学习,当然也可以经过优化运用到实 ...
- redis中获取没有设置ttl过期时间的key
需求:redis作为一个内存型的数据库,我们需要对过期key保持关注,从info keyspace中可以看出有多少key没有设置过期时间,那么到底是哪些呢? 说明:关于redis ttl 的返回值,请 ...
- liunx 查找locate
使用 安装 yum install mlocate 更新数据库 updatedb 查找my.cnf文件 locate my.cnf
- 转载:polyphase filter
http://www.ws.binghamton.edu/fowler/fowler%20personal%20page/ee521.htm http://www.ws.binghamton.edu/ ...
- Coursera 吴恩达 深度学习 学习笔记
神经网络和深度学习 Week 1-2 神经网络基础 Week 3 浅层神经网络 Week 4 深层神经网络 改善深层神经网络 Week 1 深度学习的实用层面 Week 2 优化算法 Week 3 超 ...
- Qtree3 - 树链剖分
打完以后才发现写复杂了……算了懒得改了 #include <bits/stdc++.h> using namespace std; ],fa[][],size[],wson[],vis[] ...
- js上传文件工具类
个人博客 地址:http://www.wenhaofan.com/article/20180808210417 jQuery.extend({ uploadUtil:function(){ } }); ...