コード例 #1
0
ファイル: session.go プロジェクト: bigxing/leanote
func SessionFilter(c *revel.Controller, fc []revel.Filter) {
	sessionId := c.Session.Id()

	// 从memcache中得到cache, 赋给session
	cache := revel.Session(memcache.Get(sessionId))
	if cache == nil {
		cache = revel.Session{}
		cache.Id()
	}
	c.Session = cache

	fc[0](c, fc[1:])

	// 再把session保存之
	memcache.Set(sessionId, c.Session, -1)

	// 只留下sessionId
	c.Session = revel.Session{revel.SESSION_ID_KEY: sessionId}
}