Go官方没有提供session支持,需要使用第三方库,这里介绍github.com/gorilla/sessions的使用。
这个库本身只支持cookie和文件存储,但有基于这个库的扩展,可以支持mysql redis等等。
使用方式:
存值:
1 2 3 4 5 6 7 8 | var store=sessions.NewCookieStore([]byte("10df6669f6414d0ce82dbf46aaae0741")) var sessionName = "golang_everyday" func store(w http.ResponseWriter, r *http.Request,k string,v string) { session,_:=store.Get(r,sessionName) session.Values[k] = v session.Save(r,w) } |
取值:
1 2 3 4 5 | func get(w http.ResponseWriter, r *http.Request,k string) (string,error){ session,_:=store.Get(r,sessionName) v,err :=session.Values[k].(string) return v,err } |