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

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

内容简介:主要涉及内容: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


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

查看所有标签

猜你喜欢:

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

暗趋势

暗趋势

王煜全 / 中信出版集团 / 2019-1 / 59元

《暗趋势》由得到“全球创新260讲”专栏主讲人王煜全,为你揭示藏在科技浪潮中的商业机会,教你获得把握趋势的能力,发现小趋势,抓住大机遇。 《暗趋势》聚焦于改变你生活和未来的产业,深度解读人工智能、混合现实、区块链、生物医疗等你必须关注的科技行业,并分析新科技给企业和个人带来的发展机遇,前瞻性提出企业和个人的思维与行动应对策略。 王煜全作为全球科技前哨侦察兵,以其每年5亿元的科技投资及2......一起来看看 《暗趋势》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试