24 lines
583 B
Go
24 lines
583 B
Go
package flow
|
|
|
|
import (
|
|
"code.mrmelon54.com/melon/summer/pkg/claims"
|
|
"github.com/mrmelon54/mjwt"
|
|
"time"
|
|
)
|
|
|
|
type OAuthFlowClaims struct {
|
|
LoginId uint64 `json:"lid"`
|
|
Scopes *claims.PermStorage `json:"sco"`
|
|
}
|
|
|
|
func (o OAuthFlowClaims) Valid() error { return nil }
|
|
|
|
func (o OAuthFlowClaims) Type() string { return "oauth-flow" }
|
|
|
|
func CreateOAuthFlowToken(p mjwt.Provider, sub, id string, loginId uint64, scopes *claims.PermStorage, dur time.Duration) (string, error) {
|
|
return p.GenerateJwt(sub, id, dur, OAuthFlowClaims{
|
|
LoginId: loginId,
|
|
Scopes: scopes,
|
|
})
|
|
}
|