作为 OIDC Provider 对接 Gitea;注册支持邮件验证码/验证码;侧栏同步公开仓库;Feed 分页、文章大纲、标签云与站点品牌设置。 Co-authored-by: Cursor <cursoragent@cursor.com>
32 lines
1.4 KiB
Go
32 lines
1.4 KiB
Go
package model
|
||
|
||
import "time"
|
||
|
||
// OAuthClient OIDC/OAuth2 客户端应用(密钥仅存 bcrypt 哈希)
|
||
type OAuthClient struct {
|
||
ID uint `gorm:"primaryKey" json:"id"`
|
||
ClientID string `gorm:"uniqueIndex;size:128;not null" json:"client_id"`
|
||
ClientSecretHash string `gorm:"size:128;not null" json:"-"`
|
||
Name string `gorm:"size:128;not null" json:"name"`
|
||
RedirectURIs string `gorm:"size:2048;not null" json:"redirect_uris"`
|
||
Enabled bool `gorm:"default:true" json:"enabled"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
// OAuthAuthCode 一次性授权码(OIDC Authorization Code Flow)
|
||
type OAuthAuthCode struct {
|
||
ID uint `gorm:"primaryKey"`
|
||
Code string `gorm:"uniqueIndex;size:64;not null"`
|
||
ClientID string `gorm:"size:128;not null;index"`
|
||
UserID uint `gorm:"not null;index"`
|
||
RedirectURI string `gorm:"size:512;not null"`
|
||
Scope string `gorm:"size:256;default:''"`
|
||
Nonce string `gorm:"size:128;default:''"`
|
||
CodeChallenge string `gorm:"size:128;default:''"`
|
||
CodeChallengeMethod string `gorm:"size:16;default:''"`
|
||
ExpiresAt time.Time `gorm:"not null;index"`
|
||
Used bool `gorm:"default:false"`
|
||
CreatedAt time.Time
|
||
}
|