beego实现用户未登录跳转到登录页面

栏目: Go · 发布时间: 5年前

内容简介:主要涉及内容:main.gologinController.go

主要涉及内容:

  1. 自动路由
  2. 过滤器
  3. session控制
  4. 表单请求数据处理

main.go

//这里应该加载 "github.com/astaxie/beego/context" 否则会加载src/context
//过滤器
var FilterUser = func(ctx *context.Context){
	_, ok := ctx.Input.Session("uid").(string)
	ok2 := strings.Contains(ctx.Request.RequestURI, "/login")
	if !ok && !ok2{
		ctx.Redirect(302, "/login/index")
	}
}

func main() {
	//注册过滤器
	beego.InsertFilter("/*", beego.BeforeRouter, FilterUser)
	//打开session
	beego.BConfig.WebConfig.Session.SessionOn = true
	setWebAutoRouter()
	beego.Run()
}

//注册自动路由
func setWebAutoRouter(){
	beego.AutoRouter(&controllers.TestController{})
	beego.AutoRouter(&controllers.LoginController{})
}

loginController.go

type LoginController struct{
	beego.Controller
}

type user struct {
	Id int `form:"-"`
	Name string `form:"username"`
	Age int `form:"age"`
	Email string
}

func (this *LoginController) Index(){
	//获取session值
	this.Data["uid"] = this.GetSession("uid")
	this.TplName = "login.html"
}

func (this *LoginController) Register(){
	u := user{}
	//处理表单提交的数据
	if err := this.ParseForm(&u); err != nil{
		fmt.Println(err)
	} else {
		//注册session值
		this.SetSession("uid", u.Name)
	}
	this.Data["uid"] = this.GetSession("uid")
	this.TplName = "login.html"
}

testController.go

type TestController struct{
	beego.Controller
}

func (this *TestController) Index(){
	paramMap := this.Ctx.Input.Params()
	//获取RESTFUL风格的参数
	//此时的URL为 localhost:8080/test/index/aaa/bbb
	this.Data["Website"] = paramMap["0"]		//aaa
	this.Data["Email"] = paramMap["1"]		//bbb

	v := this.GetSession("uid")
	this.Data["uid"] = v.(string)

	this.TplName = "test.html"
}

HTML代码略

参考网址:

https://beego.me/docs/intro/

https://www.jianshu.com/p/f583edfc7a1a


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程的修炼(中英双语)

编程的修炼(中英双语)

[荷]Edsger W. Dijkstra / 裘宗燕 / 电子工业出版社 / 2013-7 / 79.00元

本书是图灵奖获得者Edsger W. Dijkstra在编程领域里的经典著作中的经典。作者基于其敏锐的洞察力和长期的实际编程经验,对基本顺序程序的描述和开发中的许多关键问题做了独到的总结和开发。书中讨论了顺序程序的本质特征、程序描述和对程序行为(正确性)的推理,并通过一系列从简单到复杂的程序的思考和开发范例,阐释了基于严格的逻辑推理开发正确可靠程序的过程。 本书写于20世纪70年代中后期,但......一起来看看 《编程的修炼(中英双语)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具