mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 15:30:36 +01:00
add a note about sessions transcoder, rel: https://github.com/kataras/iris/issues/1517#issuecomment-630256473
Former-commit-id: 3ac995ea77b4629dc7b0d580b9e36d9e302b96ee
This commit is contained in:
parent
f3745cebbd
commit
9b172fe4ab
|
@ -24,6 +24,18 @@ func main() {
|
||||||
|
|
||||||
defer db.Close() // close and unlock the database if application errored.
|
defer db.Close() // close and unlock the database if application errored.
|
||||||
|
|
||||||
|
// The default transcoder is the JSON one,
|
||||||
|
// based on the https://golang.org/pkg/encoding/json/#Unmarshal
|
||||||
|
// you can only retrieve numbers as float64 types:
|
||||||
|
// * bool, for booleans
|
||||||
|
// * float64, for numbers
|
||||||
|
// * string, for strings
|
||||||
|
// * []interface{}, for arrays
|
||||||
|
// * map[string]interface{}, for objects.
|
||||||
|
// If you want to save the data per go-specific types
|
||||||
|
// you should change the DefaultTranscoder to the GobTranscoder one:
|
||||||
|
// sessions.DefaultTranscoder = sessions.GobTranscoder{}
|
||||||
|
|
||||||
sess := sessions.New(sessions.Config{
|
sess := sessions.New(sessions.Config{
|
||||||
Cookie: "sessionscookieid",
|
Cookie: "sessionscookieid",
|
||||||
Expires: 1 * time.Minute, // <=0 means unlimited life. Defaults to 0.
|
Expires: 1 * time.Minute, // <=0 means unlimited life. Defaults to 0.
|
||||||
|
|
|
@ -77,9 +77,29 @@ func NewApp(sess *sessions.Sessions) *iris.Application {
|
||||||
session := sessions.Get(ctx)
|
session := sessions.Get(ctx)
|
||||||
// get a specific key, as string, if no found returns just an empty string
|
// get a specific key, as string, if no found returns just an empty string
|
||||||
key := ctx.Params().Get("key")
|
key := ctx.Params().Get("key")
|
||||||
name := session.GetString(key)
|
value := session.Get(key)
|
||||||
|
|
||||||
ctx.Writef("The name on the /set was: %s", name)
|
ctx.Writef("The [%s:%T] on the /set was: %v", key, value, value)
|
||||||
|
})
|
||||||
|
|
||||||
|
app.Get("/set/{type}/{key}/{value}", func(ctx iris.Context) {
|
||||||
|
session := sessions.Get(ctx)
|
||||||
|
|
||||||
|
key := ctx.Params().Get("key")
|
||||||
|
var value interface{}
|
||||||
|
|
||||||
|
switch ctx.Params().Get("type") {
|
||||||
|
case "int":
|
||||||
|
value = ctx.Params().GetIntDefault("value", 0)
|
||||||
|
case "float64":
|
||||||
|
value = ctx.Params().GetFloat64Default("value", 0.0)
|
||||||
|
default:
|
||||||
|
value = ctx.Params().Get("value")
|
||||||
|
}
|
||||||
|
session.Set(key, value)
|
||||||
|
|
||||||
|
value = session.Get(key)
|
||||||
|
ctx.Writef("Key: %s, Type: %T, Value: %v", key, value, value)
|
||||||
})
|
})
|
||||||
|
|
||||||
app.Get("/delete", func(ctx iris.Context) {
|
app.Get("/delete", func(ctx iris.Context) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user