hlfw.ca

webbing

ref: 067fdc804453a63dc7bcf9d85b9c3e25681928bd
dir: /tokens.go/

View raw version
package plugins

import (
	"github.com/olmaxmedical/db"
	"github.com/olmaxmedical/router"
)

// FormToken - A database-persisted one time use token to relate forms to POST requests
const FormToken router.PluginMask = 1 << 15

func init() {
	c := &router.Plugin{
		Name:     "formToken",
		Run:      newFormToken,
		Validate: validateToken,
	}
	router.AddPlugin(c, FormToken)
}

func validateToken(r *router.Request) error {
	return db.ValidateToken(r.Request(), r.Session())
}

// TODO(halfwit) - database
func newFormToken(r *router.Request) map[string]interface{} {
	return map[string]interface{}{
		"token": db.NewToken(),
	}
}