hlfw.ca

webbing

ref: cc4256ab632d02991ff81c246ed8e4940f717c4a
dir: /tokens.go/

View raw version
package plugins

import (
	"github.com/olmaxmedical/database"
	"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 database.ValidateToken(r.Request(), r.Session())
}

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