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


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

查看所有标签

猜你喜欢:

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

冒号课堂

冒号课堂

郑晖 / 电子工业出版社 / 2009-10 / 65.00元

《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。一起来看看 《冒号课堂》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具