65 lines
2.6 KiB
Go
65 lines
2.6 KiB
Go
package oauth2
|
|
|
|
import "time"
|
|
|
|
// OAuthClient oauth_client
|
|
type OAuthClient struct {
|
|
ID string `gorm:"primaryKey;type:varchar(36)"`
|
|
ClientID string `gorm:"size:64;not null;uniqueIndex"`
|
|
ClientSecretHash *string `gorm:"size:255"`
|
|
RedirectURIsJSON string `gorm:"column:redirect_uris;type:text;not null"`
|
|
IsPublic bool `gorm:"not null;default:true"`
|
|
CreatedAt time.Time `gorm:"not null"`
|
|
}
|
|
|
|
func (OAuthClient) TableName() string { return "oauth_client" }
|
|
|
|
// OAuthAuthorizationCode oauth_authorization_code
|
|
type OAuthAuthorizationCode struct {
|
|
ID string `gorm:"primaryKey;type:varchar(36)"`
|
|
CodeHash string `gorm:"size:64;not null;uniqueIndex"`
|
|
ClientID string `gorm:"size:64;not null"`
|
|
RedirectURI string `gorm:"type:text;not null"`
|
|
UserID string `gorm:"size:36;not null"`
|
|
TenantID string `gorm:"size:36;not null"`
|
|
Scope string `gorm:"type:text;not null"`
|
|
CodeChallenge string `gorm:"size:128;not null"`
|
|
CodeChallengeMethod string `gorm:"size:16;not null"`
|
|
ExpiresAt time.Time `gorm:"not null"`
|
|
Used bool `gorm:"not null;default:false"`
|
|
CreatedAt time.Time `gorm:"not null"`
|
|
}
|
|
|
|
func (OAuthAuthorizationCode) TableName() string { return "oauth_authorization_code" }
|
|
|
|
// OAuthAccessToken oauth_access_token
|
|
type OAuthAccessToken struct {
|
|
ID string `gorm:"primaryKey;type:varchar(36)"`
|
|
TokenHash string `gorm:"size:64;not null;uniqueIndex"`
|
|
ClientID string `gorm:"size:64;not null"`
|
|
UserID string `gorm:"size:36;not null"`
|
|
TenantID string `gorm:"size:36;not null"`
|
|
Scope string `gorm:"type:text;not null"`
|
|
ExpiresAt time.Time `gorm:"not null"`
|
|
RevokedAt *time.Time `gorm:""`
|
|
CreatedAt time.Time `gorm:"not null"`
|
|
}
|
|
|
|
func (OAuthAccessToken) TableName() string { return "oauth_access_token" }
|
|
|
|
// OAuthRefreshToken oauth_refresh_token
|
|
type OAuthRefreshToken struct {
|
|
ID string `gorm:"primaryKey;type:varchar(36)"`
|
|
TokenHash string `gorm:"size:64;not null;uniqueIndex"`
|
|
AccessTokenID string `gorm:"size:36;not null;index"`
|
|
ClientID string `gorm:"size:64;not null"`
|
|
UserID string `gorm:"size:36;not null"`
|
|
TenantID string `gorm:"size:36;not null"`
|
|
Scope string `gorm:"type:text;not null"`
|
|
ExpiresAt time.Time `gorm:"not null"`
|
|
RevokedAt *time.Time `gorm:""`
|
|
CreatedAt time.Time `gorm:"not null"`
|
|
}
|
|
|
|
func (OAuthRefreshToken) TableName() string { return "oauth_refresh_token" }
|