cache ValidateAuthToken

This commit is contained in:
Sebastian Frank 2020-09-30 12:13:37 +02:00
parent 7f98182e94
commit fe48c8cb73
Signed by: apairon
GPG Key ID: 7270D06DDA7FE8C3
1 changed files with 15 additions and 0 deletions

View File

@ -85,6 +85,17 @@ func (api *API) loginPostHandler(m LoginModel) func(c *gin.Context) {
// ValidateAuthToken checks if token is valid and returns its data
func (c *Context) ValidateAuthToken() (tokenObject map[string]interface{}, tokenType string, err error) {
tokenObject = c.GetStringMap("validate-auth-token-object")
if tokenObject != nil {
tokenType = c.GetString("validate-auth-token-type")
_err, _ := c.Get("validate-auth-token-err")
if _err != nil {
err = _err.(error)
}
return // return cached data
}
token := c.Request.Header.Get(c.API.authenticationHeader)
if token == "" {
return nil, "", errors.New("empty token")
@ -110,5 +121,9 @@ func (c *Context) ValidateAuthToken() (tokenObject map[string]interface{}, token
return nil, "", errors.New("token object type is invalid")
}
c.Set("validate-auth-token-object", _object)
c.Set("validate-auth-token-type", _type)
c.Set("validate-auth-token-err", err)
return _object, _type, err
}