mirror of
https://github.com/kataras/iris.git
synced 2026-01-09 21:15:56 +00:00
add context partial user helper and accept a generic interface on SetUser - the same method now returns an error if the given value does not complete at least one method of the User interface
This commit is contained in:
@@ -24,8 +24,8 @@ func NewSigner(signatureAlg Alg, signatureKey interface{}, maxAge time.Duration)
|
||||
}
|
||||
}
|
||||
|
||||
// WithGCM enables AES-GCM payload decryption.
|
||||
func (s *Signer) WithGCM(key, additionalData []byte) *Signer {
|
||||
// WithEncryption enables AES-GCM payload decryption.
|
||||
func (s *Signer) WithEncryption(key, additionalData []byte) *Signer {
|
||||
encrypt, _, err := jwt.GCM(key, additionalData)
|
||||
if err != nil {
|
||||
panic(err) // important error before serve, stop everything.
|
||||
@@ -35,10 +35,14 @@ func (s *Signer) WithGCM(key, additionalData []byte) *Signer {
|
||||
return s
|
||||
}
|
||||
|
||||
// Sign generates a new token based on the given "claims" which is valid up to "s.MaxAge".
|
||||
func (s *Signer) Sign(claims interface{}, opts ...SignOption) ([]byte, error) {
|
||||
return SignEncrypted(s.Alg, s.Key, s.Encrypt, claims, append([]SignOption{MaxAge(s.MaxAge)}, opts...)...)
|
||||
}
|
||||
|
||||
// NewTokenPair accepts the access and refresh claims plus the life time duration for the refresh token
|
||||
// and generates a new token pair which can be sent to the client.
|
||||
// The same token pair can be json-decoded.
|
||||
func (s *Signer) NewTokenPair(accessClaims interface{}, refreshClaims interface{}, refreshMaxAge time.Duration, accessOpts ...SignOption) (TokenPair, error) {
|
||||
if refreshMaxAge <= s.MaxAge {
|
||||
return TokenPair{}, fmt.Errorf("refresh max age should be bigger than access token's one[%d - %d]", refreshMaxAge, s.MaxAge)
|
||||
|
||||
Reference in New Issue
Block a user