beego的Session模块

特别注意

这个文档是 独立模块,即你单独拿这个模块应用于其他应用中session redis,如果你想在 beego 中使用 ,请查看文档 控制

介绍

模块是用来存储客户端用户, 模块目前只支持 方式的请求,如果客户端不支持 ,那么就无法使用该模块。

模块参考了 /sql 的引擎写法,采用了一个接口,多个实现的方式。目前实现了 、file、Redis 和 MySQL 四种存储引擎。

通过下面的方式安装 :

go get github.com/astaxie/beego/session

使用

首先你必须导入包:

import (
    "github.com/astaxie/beego/session"
)

session redis

然后你初始化一个全局的变量用来存储 控制器:

var globalSessions *session.Manager

接着在你的入口函数中初始化数据:

func init() {
        sessionConfig := &session.ManagerConfig{
    CookieName:"gosessionid", 
    EnableSetCookie: true, 
    Gclifetime:3600,
    Maxlifetime: 3600, 
    Secure: false,
    CookieLifeTime: 3600,
    ProviderConfig: "./tmp",
    }
    globalSessions, _ = session.NewManager("memory",sessionConfig)
    go globalSessions.GC()
}

函数的参数的函数如下所示

引擎名字,可以是 、file、mysql 或 redis。一个 JSON 字符串,传入 的配置信息: 客户端存储 的名字。,: 是否开启 , 这个设置: 触发 GC 的时间。: 服务器端存储的数据的过期时间: 是否开启 HTTPS,在 设置的时候有 . 设置。: 生产的函数,默认是 sha1 算法。: hash 算法中的 key。: 客户端存储的 的时间beego的Session模块,默认值是 0,即浏览器生命周期。: 配置信息,根据不同的引擎设置不同的配置信息,详细的配置请看下面的引擎设置

最后我们的业务逻辑处理函数中可以这样调用:

func login(w http.ResponseWriter, r *http.Request) {
    sess, _ := globalSessions.SessionStart(w, r)
    defer sess.SessionRelease(w)
    username := sess.Get("username")
    if r.Method == "GET" {
        t, _ := template.ParseFiles("login.gtpl")
        t.Execute(w, nil)
    } else {
        sess.Set("username", r.Form["username"])
    }
}

有多个函数如下所示:

session redis

返回的 对象是一个 ,包含下面的方法

引擎设置

上面已经展示了 的设置,接下来我们看一下其他三种引擎的设置方式:

如何创建自己的引擎

在开发应用中session redis,你可能需要实现自己的 引擎beego的Session模块,beego 的这个 模块设计的时候就是采用了 ,所以你可以根据接口实现任意的引擎session redis,例如 的引擎。

type SessionStore interface {
    Set(key, value interface{}) error //set session value
    Get(key interface{}) interface{}  //get session value
    Delete(key interface{}) error     //delete session value
    SessionID() string                //back current sessionID
    SessionRelease()                  // release the resource & save data to provider
    Flush() error                     //delete all data
}
type Provider interface {
    SessionInit(maxlifetime int64, savePath string) error
    SessionRead(sid string) (SessionStore, error)
    SessionExist(sid string) bool
    SessionRegenerate(oldsid, sid string) (SessionStore, error)
    SessionDestroy(sid string) error
    SessionAll() int //get all active session
    SessionGC()
}

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » beego的Session模块

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们