this repo has no description
1package provider 2 3import ( 4 "database/sql/driver" 5 "encoding/json" 6 "fmt" 7 "time" 8 9 "gorm.io/gorm" 10) 11 12type ClientAuth struct { 13 Method string 14 Alg string 15 Kid string 16 Jkt string 17 Jti string 18 Exp *float64 19} 20 21func (ca *ClientAuth) Scan(value any) error { 22 b, ok := value.([]byte) 23 if !ok { 24 return fmt.Errorf("failed to unmarshal OauthParRequest value") 25 } 26 return json.Unmarshal(b, ca) 27} 28 29func (ca ClientAuth) Value() (driver.Value, error) { 30 return json.Marshal(ca) 31} 32 33type ParRequest struct { 34 AuthenticateClientRequestBase 35 ResponseType string `form:"response_type" json:"response_type" query:"response_type" validate:"required"` 36 CodeChallenge *string `form:"code_challenge" json:"code_challenge" query:"code_challenge" validate:"required"` 37 CodeChallengeMethod string `form:"code_challenge_method" json:"code_challenge_method" query:"code_challenge_method" validate:"required"` 38 State string `form:"state" json:"state" query:"state" validate:"required"` 39 RedirectURI string `form:"redirect_uri" json:"redirect_uri" query:"redirect_uri" validate:"required"` 40 Scope string `form:"scope" json:"scope" query:"scope" validate:"required"` 41 LoginHint *string `form:"login_hint" query:"login_hint" json:"login_hint,omitempty"` 42 DpopJkt *string `form:"dpop_jkt" query:"dpop_jkt" json:"dpop_jkt,omitempty"` 43 ResponseMode *string `form:"response_mode" json:"response_mode,omitempty" query:"response_mode"` 44} 45 46func (opr *ParRequest) Scan(value any) error { 47 b, ok := value.([]byte) 48 if !ok { 49 return fmt.Errorf("failed to unmarshal OauthParRequest value") 50 } 51 return json.Unmarshal(b, opr) 52} 53 54func (opr ParRequest) Value() (driver.Value, error) { 55 return json.Marshal(opr) 56} 57 58type OauthToken struct { 59 gorm.Model 60 ClientId string `gorm:"index"` 61 ClientAuth ClientAuth `gorm:"type:json"` 62 Parameters ParRequest `gorm:"type:json"` 63 ExpiresAt time.Time `gorm:"index"` 64 DeviceId string 65 Sub string `gorm:"index"` 66 Code string `gorm:"index"` 67 Token string `gorm:"uniqueIndex"` 68 RefreshToken string `gorm:"uniqueIndex"` 69 Ip string 70} 71 72type OauthAuthorizationRequest struct { 73 gorm.Model 74 RequestId string `gorm:"primaryKey"` 75 ClientId string `gorm:"index"` 76 ClientAuth ClientAuth `gorm:"type:json"` 77 Parameters ParRequest `gorm:"type:json"` 78 ExpiresAt time.Time `gorm:"index"` 79 DeviceId *string 80 Sub *string 81 Code *string 82 Accepted *bool 83 Ip string 84}