Go Session5:beego/session的应用

项目目录树结构

mysession项目目录树结构

main.go

import (

    "fmt"

    _ "mysession/routers"

    "github.com/astaxie/beego"

)

func init() {

    fmt.Println("Init.")

}

func main() {

    fmt.Println("Main.")

    beego.BConfig.WebConfig.Session.SessionOn = true

    beego.Run()

}

login.go

import (

    "fmt"

    "github.com/astaxie/beego"

)

type LoginController struct {

    beego.Controller

}

func (c *LoginController) Get() {

    fmt.Println("Login Get.")

    c.TplName = "login.html"

}

func (c *LoginController) Post() {

    fmt.Println("Login Post.")

    name := c.GetString("name")

    pwd := c.GetString("pwd")

    isLogin := 0

    if name == "admin" && pwd == "123456" {

        c.SetSession("loginuser", "adminuser")

        fmt.Println("session:", c.CruSession)

    } else if name != "admin" {

        isLogin = 1

    } else if pwd != "123456" {

        isLogin = 2

    }

    fmt.Println("isLogin", isLogin)

    c.Data["json"] = map[string]interface{}{"islogin": isLogin}

    c.ServeJSON()

}

type LogoutController struct {

    beego.Controller

}

func (c *LogoutController) Post() {

    v := c.GetSession("loginuser")

    fmt.Println("v", v)

    isLogin := false

    if v != nil {

        c.DelSession("loginuser")

        c.DestroySession()

        isLogin = true

        fmt.Println("session:", c.CruSession)

    }

    c.Data["json"] = map[string]interface{}{"islogin": isLogin}

    c.ServeJSON()

}

routers.go

import (

    "mysession/controllers"

    "github.com/astaxie/beego"

)

func init() {

    beego.Router("/login", &controllers.LoginController{})

    beego.Router("/logout", &controllers.LogoutController{})

}

app.conf

appname = mysession

httpport = 8081

runmode = dev

login.html

https://github.com/weiyunhelong/BeegoLearn/blob/master/views/login.html

运行

浏览器输入:http://localhost:8081/login

运行结果:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 2,482评论 0 14
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,229评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,692评论 19 139
  • 动态改变Background 动态改变TextColor
    撕裂的我阅读 484评论 1 0
  • 太在乎自己的感受是自私,太在乎别人的感受是自虐。 生活里,我们不可能做一个完全无私或者自私的人,那些一心只为别人着...
    猫谁妖谁阅读 3,907评论 12 13

友情链接更多精彩内容