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

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

  •  
  •   lyrictian ·
    LyricTian · 2018-06-13 23:15:32 +08:00 · 3138 次点击
    这是一个创建于 2392 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    FrankAdler
        1
    FrankAdler  
       2018-06-14 13:05:49 +08:00
    mark 一下, 现在都是在写无状态 api, 暂时用不到 session
    my3157
        2
    my3157  
       2018-06-14 13:15:41 +08:00
    也是 rest api , 把 go-macaron/cache 魔改了 处理 access token
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:29 · PVG 06:29 · LAX 14:29 · JFK 17:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.