IRIS session使用

目录结构

主目录sessions

  1. —— main.go
  2. —— routes
  3. —— index.go

代码示例

main.go

  1. package main
  2. import (
  3. "time"
  4. "./routes"
  5. "github.com/kataras/iris"
  6. "github.com/kataras/iris/hero" // <- 导入
  7. "github.com/kataras/iris/sessions"
  8. )
  9. func main() {
  10. app := iris.New()
  11. sessionManager := sessions.New(sessions.Config{
  12. Cookie: "site_session_id",
  13. Expires: 60 * time.Minute,
  14. AllowReclaim: true,
  15. })
  16. //注册
  17. //动态依赖关系,比如* sessions.Session,来自`sessionManager.Start(ctx)*sessions.Session` < - 它接受一个Context并返回
  18. // something - >这称为动态请求 - 时间依赖,并且某些东西可以作为输入参数用于处理程序,
  19. //没有关于依赖项数量限制,每个处理程序将在服务器运行之前构建一次,并且它将仅使用它所需的依赖项。
  20. hero.Register(sessionManager.Start)
  21. //将任何函数转换为iris Handler,使用独特的Iris超快速依赖注入来解析它们的输入参数
  22. //用于服务或动态依赖,例如* sessions.Session,来自sessionManager.Start(ctx)* sessions.Session)< - 它接受一个Context并返回
  23. // 某些东西->这称为动态请求时依赖性。
  24. indexHandler := hero.Handler(routes.Index)
  25. // Method: GET
  26. // Path: http://localhost:8080
  27. app.Get("/", indexHandler)
  28. app.Run(
  29. iris.Addr(":8080"),
  30. iris.WithoutServerError(iris.ErrServerClosed),
  31. )
  32. }

/routes/index.go

  1. package routes
  2. import (
  3. "github.com/kataras/iris"
  4. "github.com/kataras/iris/sessions"
  5. )
  6. // Index将根据此用户/session 所执行的访问来增加一个简单的int版本。
  7. func Index(ctx iris.Context, session *sessions.Session) {
  8. //每一次访问自增一,如果不存在就先为你创建一个visits
  9. visits := session.Increment("visits", 1)
  10. //打印出当前的visits值
  11. ctx.Writef("%d visit(s) from my current session", visits)
  12. }
  13. /*
  14. 您还可以执行MVC功能可以执行的任何操作,即:
  15. func Index(ctx iris.Context,session *sessions.Session) string {
  16. visits := session.Increment("visits", 1)
  17. return fmt.Spritnf("%d visit(s) from my current session", visits)
  18. }
  19. //你也可以省略iris.Context输入参数并使用LoginForm等依赖注入。< - 查看mvc示例。
  20. */