目录结构

  1. user/base/controllers/required_auth.go
  2. user/controlers/home.go

required_auth.go

  1. package controllers
  2. import (
  3. "github.com/astaxie/beego"
  4. )
  5. type RequiredAuthController struct {
  6. beego.Controller //继承beego的Controller
  7. }
  8. //重写Prepare方法,以实现其他Controller可以实现自动session验证
  9. func (c *RequiredAuthController) Prepare() {
  10. user := c.GetSession("user")
  11. if user == nil {
  12. // 未登录
  13. c.Redirect("/auth/login", 302)
  14. }
  15. }

home.go

  1. package controllers
  2. import (
  3. "fmt"
  4. base "user/base/controllers"
  5. )
  6. type HomeController struct {
  7. base.RequiredAuthController //控制器通过继承RequiredAuthController,以实现自动session验证功能,不必再重复编写
  8. }
  9. func (c *HomeController) Index() {
  10. fmt.Println("home")
  11. c.Ctx.WriteString("home")
  12. }
文档更新时间: 2023-07-18 14:40   作者:张尚