mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 11:04:25 +00:00
ed80a8bb1e
* feat(actions): begin api * feat(actions): begin api * api and projections * fix: handle multiple statements for a single event in projections * export func type * fix test * update to new reduce interface * flows in login * feat: jwt idp * feat: command side * feat: add tests * actions and flows * fill idp views with jwt idps and return apis * add jwtEndpoint to jwt idp * begin jwt request handling * add feature * merge * merge * handle jwt idp * cleanup * bug fixes * autoregister * get token from specific header name * fix: proto * fixes * i18n * begin tests * fix and log http proxy * remove docker cache * fixes * usergrants in actions api * tests adn cleanup * cleanup * fix add user grant * set login context * i18n Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
34 lines
718 B
Go
34 lines
718 B
Go
package actions
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/caos/oidc/pkg/oidc"
|
|
)
|
|
|
|
type Context map[string]interface{}
|
|
|
|
func (c Context) set(name string, value interface{}) {
|
|
map[string]interface{}(c)[name] = value
|
|
}
|
|
|
|
func (c *Context) SetToken(t *oidc.Tokens) *Context {
|
|
if t.Token != nil && t.Token.AccessToken != "" {
|
|
c.set("accessToken", t.AccessToken)
|
|
}
|
|
if t.IDToken != "" {
|
|
c.set("idToken", t.IDToken)
|
|
}
|
|
if t.IDTokenClaims != nil {
|
|
c.set("getClaim", func(claim string) interface{} { return t.IDTokenClaims.GetClaim(claim) })
|
|
c.set("claimsJSON", func() (string, error) {
|
|
c, err := json.Marshal(t.IDTokenClaims)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return string(c), nil
|
|
})
|
|
}
|
|
return c
|
|
}
|