`
qq466862016
  • 浏览: 128396 次
  • 来自: 杭州
社区版块
存档分类
最新评论

golang 集成 sessions 使用注意事项

阅读更多

    golang 集成 sessions 使用注意事项

除go基本类型外,复杂对象结构存储,必须先注册

比如我们使用如下

$ go get github.com/tommy351/gin-sessions
package routers

import (
       "github.com/gin-gonic/gin"

       "github.com/tommy351/gin-sessions"
       "blog/models"
       "fmt"
)

func init() {

       router := gin.Default()

       //设置静态资源
router.Static("/statics","./assets/statics")

       //设置模板路径
router.LoadHTMLGlob("templates/**")

       //设置session midddleware
store := sessions.NewCookieStore([]byte("dongtian_go_session"))
       router.Use(sessions.Middleware("go_dongtian_sesion",store))


       router.GET("/ping", func(c *gin.Context) {
              c.JSON(200, gin.H{
                     "message": "pong",
              })

       })

       router.GET("/set", func(c *gin.Context) {

              session := sessions.Get(c)
              user := models.User{}
              user.Id = 100
user.UserName = "冬天"
session.Set("user",user)
              session.Save()
              c.JSON(200, gin.H{
                     "message": "set",
              })
       })

       router.GET("/get", func(c *gin.Context) {

              session := sessions.Get(c)

              user := session.Get("user")
              fmt.Println("user  =",user)
              c.JSON(200, gin.H{
                     "message": "get",
              })
       })
       router.Run(":8080")
}
models 下的User
package models

import (
       "time"
       "encoding/gob"
)

type User struct {
       Id            int    `xorm:"pk"`
UserName      string `xorm:"char(32)"`
Password      string `xorm:"char(32)"`
NickName      string `xorm:"char(32)"`
NetName       string `xorm:"char(32)"`
Job           string `xorm:"char(32)"`
Address       string `xorm:"varchar(255)"`
Mobile        string `xorm:"char(32)"`
Email         string `xorm:"char(32)"`
State         int
       RegIp         string
       LastLoginIp   string
       CreateTime    time.Time `xorm:"index(index_user_create_time)","created"`
UpdateTime    time.Time `xorm:"index(index_user_update_time)","updated"`
LastLoginTime time.Time `xorm:"index(index_user_last_login_time)"`
}


func init(){
     //必须encoding/gob编码解码进行注册 
       gob.Register(&User{})
}
2
2
分享到:
评论

相关推荐

    golang路由,集成mysql,redis。读取配置文件信息

    在本文中,我们将深入探讨如何使用Golang来构建一个包含路由转发、MySQL集成以及Redis连接的应用。我们将重点关注Golang的特性,如路由处理、数据库连接、并发处理(goroutines)以及通道(chan)的使用。 首先,让...

    Golang集成开发环境LiteIDE 2017最新版

    LiteIDE 是一款简单、开源、跨平台的 Go 语言 IDE。国内不少用户下载不成功,故提供2017最新版。亲测安装非常棒,还是中文版。(解压后得到 liteide 目录,将其拷贝到 Go的Rootpath如c:\go,打开 c:\go\liteide\bin...

    golang中便捷使用的助手函数

    golang 方便使用的助手函数

    Golang在京东的使用.pptx

    在使用Golang的过程中,开发团队体验到了它的“快乐与痛苦”。快乐在于其简洁的语法、快速的开发效率和并发处理的便利性,丰富的基础库提供了强大的支持。然而,“痛苦”主要体现在Golang的垃圾回收机制,这是开发者...

    Pycharm Golang插件 jar

    标题中的"Pycharm Golang插件 jar"指的是在PyCharm这款流行的Python集成开发环境中安装Golang编程语言的扩展插件。PyCharm是由JetBrains公司开发的一款强大的IDE,它支持多种编程语言,包括Python、Go等。由于Golang...

    golang使用bass库播放mp3文件

    在Golang中使用BASS库通常需要通过C语言接口(CGO)来调用其动态链接库(如bass.dll)。 首先,你需要在你的项目中引入BASS库。这通常涉及下载BASS库的DLL文件和相关的头文件。对于Windows平台,你需要`bass.dll`,...

    golang支付合集(包括微信支付,支付宝,)

    "golang支付合集(包括微信支付,支付宝,)"是一个专为Go语言开发者设计的支付集成库,旨在简化在项目中集成微信支付和支付宝的过程。这个合集不仅提供了基本的支付接口调用,还可能包含订单管理、退款、通知处理等...

    VS code & golang 安装篇

    介绍vs code 集成golang开发环境的安装方式

    Go-Golang版微信accesstokenjsapiticketsignature签名算法生成示例

    【Golang版】微信access_token、jsapi_ticket、signature签名算法生成示例,开箱即用

    Go-Animal是一个用Golang实现并使用OpenGL的现代终端模拟器

    **Go-Animal: 使用Golang和OpenGL构建的现代终端模拟器** Go-Animal是一个创新的项目,它将Golang的强大编程能力与OpenGL的图形处理功能相结合,为用户提供了一个全新的、现代的终端模拟器体验。该项目的目标是利用...

    2.1.7 使用Golang实现万人同服的游戏服务器@袁锋峰.pdf

    使用Golang实现万人同服的游戏服务器 本文将详细介绍使用Golang实现万人同服的游戏服务器,涵盖游戏服务器开发面临的挑战、游戏服务器设计面临的挑战、高并发TPS、高可用玩家对服务的可用性、低延迟忍受度、数据...

    golang环境配置及对接s3对象存储demo手册及源代码

    在本文中,我们将深入探讨如何配置Golang环境以及如何使用Golang对接Amazon S3对象存储。首先,让我们从安装Golang环境开始。 1. **安装Go环境** - **Windows**:在Windows操作系统上,你可以从Go的官方网站下载...

    alipay, 支付宝集成接口的 golang 实现.zip

    - 在集成过程中,错误处理至关重要,可以使用Golang的`error`接口捕获并处理异常情况。 - 日志记录有助于调试和问题排查,`log`包提供了基本的日志功能,或使用第三方库如`logrus`进行更复杂的日志管理。 5. **...

    golang实战使用gin+xorm搭建go语言web框架详解.pdf

    在本教程中,我们将探讨如何使用Golang语言结合Gin和Xorm这两个库来搭建一个Web框架。Gin是一个Web框架,是Go语言编写的,主要用于开发API服务,而Xorm是一个ORM库,用于简化数据库操作。我们将深入了解如何将Gin与...

    使用Golang wails为GUI框架编写的某音客户端,集成登录,搜索,多线程数据抓取.zip

    综上所述,这个项目展示了如何使用Golang和Wails来构建一个具备用户交互和后台处理能力的桌面应用。它涵盖了多种技术,包括GUI设计、网络通信、数据处理和并发编程,对于学习和理解Golang以及Web开发技术的融合有着...

    淘宝开发平台 Golang SDK, 集成简单快捷,也可以快速添加本SDK没有集成的接口 .rar

    集成开发环境(Integrated Development Environment,简称IDE)是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,有些甚至可以设计图形接口。...

    miniotest:用于 AWS S3 客户端交互的嵌入式集成测试的 Golang 模块

    迷你测试方便的 Golang 模块使您能够运行嵌入式服务器,以便对 AWS S3 操作进行集成测试。动机上有一个。 它描述了在测试中使用 Minio 的必要步骤,但仍然没有为此目的容易(重新)使用的代码。 值得注意的是,以下...

    Android-这是一个在移动App中集成Golang共享库和ReactNativeUI的小型POC

    这个名为"Android-这是一个在移动App中集成Golang共享库和ReactNativeUI的小型POC"的项目,旨在展示如何将Golang作为底层服务引擎,并结合React Native构建用户界面,从而实现一个混合开发的应用程序。 Golang,由...

    vagrant-golang, 一个很容易使用的golang环境,可以与vagrant一起使用.zip

    vagrant-golang, 一个很容易使用的golang环境,可以与vagrant一起使用 Golang Vagrant环境其他语言相比,Golang 有稍微复杂一点的设置过程,因为它使用了一个基于xml的工作区概念。 使环境错误意味着许多go命令会...

    golang解析数字证书

    在Golang中,我们可以使用内置的`crypto/x509`包来处理这些任务。以下是一些关键步骤: 1. **读取证书文件**: 使用`ioutil.ReadFile`读取.crt文件,然后使用`x509.ParseCertificate`解析证书。 ```go ...

Global site tag (gtag.js) - Google Analytics