首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
华为云
V2EX  ›  Go

又造了一个 Golang 的轮子 Session 库!使用简单!支持多存储!

  •  
  •   lyrictian · 159 天前 · 1142 次点击
    这是一个创建于 159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/go-session/session

    基于简单使用,易扩展的目的!提供了多存储的支持,内存存储、文件存储、redis 存储、cookie 存储,后续后增加 mysql、mongodb 的支持。以及多种中间件的支持,有 gin、echo、beego、gear。欢迎来踩!!!

    下面给出一个使用示例:

    package main
    
    import (
    	"context"
    	"fmt"
    	"net/http"
    
    	"github.com/go-session/session"
    )
    
    func main() {
    	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    		store, err := session.Start(context.Background(), w, r)
    		if err != nil {
    			fmt.Fprint(w, err)
    			return
    		}
    
    		store.Set("foo", "bar")
    		err = store.Save()
    		if err != nil {
    			fmt.Fprint(w, err)
    			return
    		}
    
    		http.Redirect(w, r, "/foo", 302)
    	})
    
    	http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) {
    		store, err := session.Start(context.Background(), w, r)
    		if err != nil {
    			fmt.Fprint(w, err)
    			return
    		}
    
    		foo, ok := store.Get("foo")
    		if ok {
    			fmt.Fprintf(w, "foo:%s", foo)
    			return
    		}
    		fmt.Fprint(w, "does not exist")
    	})
    
    	http.ListenAndServe(":8080", nil)
    }
    
    2 回复  |  直到 2018-06-14 13:15:41 +08:00
        1
    FrankAdler   158 天前
    mark 一下, 现在都是在写无状态 api, 暂时用不到 session
        2
    my3157   158 天前
    也是 rest api , 把 go-macaron/cache 魔改了 处理 access token
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   743 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 16ms · UTC 21:55 · PVG 05:55 · LAX 13:55 · JFK 16:55
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1