oauth

package
v1.3.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UserNameKey = "username"
	UserIDKey   = "user_id"
	UserObjKey  = "user_obj"
)
View Source
const (
	OAuthStateCacheKeyFormat     = "oauth:state:%s"
	OAuthStateCacheKeyExpiration = 10 * time.Minute
)
View Source
const (
	InvalidState        = "非法登录请求"
	IDTokenVerifyFailed = "ID Token 验证失败"
	NonceMismatch       = "nonce 不匹配,可能存在重放攻击"
)

Variables

This section is empty.

Functions

func Callback

func Callback(c *gin.Context)

Callback godoc @Tags oauth @Param request body CallbackRequest true "request body" @Produce json @Success 200 {object} util.ResponseAny @Router /api/v1/oauth/callback [post]

func GetLoginURL

func GetLoginURL(c *gin.Context)

GetLoginURL godoc @Tags oauth @Produce json @Success 200 {object} util.ResponseAny @Router /api/v1/oauth/login [get]

func GetUserIDFromContext

func GetUserIDFromContext(c *gin.Context) uint64

func GetUserIDFromSession

func GetUserIDFromSession(s sessions.Session) uint64

func LoginRequired

func LoginRequired() gin.HandlerFunc

func Logout

func Logout(c *gin.Context)

Logout godoc @Tags oauth @Produce json @Success 200 {object} util.ResponseAny @Router /api/v1/oauth/logout [get]

func UserInfo

func UserInfo(c *gin.Context)

UserInfo godoc @Tags oauth @Produce json @Success 200 {object} util.ResponseAny @Router /api/v1/oauth/user-info [get]

Types

type BasicUserInfo

type BasicUserInfo struct {
	ID               uint64           `json:"id"`
	Username         string           `json:"username"`
	Nickname         string           `json:"nickname"`
	TrustLevel       model.TrustLevel `json:"trust_level"`
	AvatarUrl        string           `json:"avatar_url"`
	TotalReceive     decimal.Decimal  `json:"total_receive"`
	TotalPayment     decimal.Decimal  `json:"total_payment"`
	TotalTransfer    decimal.Decimal  `json:"total_transfer"`
	TotalCommunity   decimal.Decimal  `json:"total_community"`
	CommunityBalance decimal.Decimal  `json:"community_balance"`
	AvailableBalance decimal.Decimal  `json:"available_balance"`
	PendingBalance   decimal.Decimal  `json:"pending_balance"`
	PayScore         int64            `json:"pay_score"`
	IsPayKey         bool             `json:"is_pay_key"`
	IsAdmin          bool             `json:"is_admin"`
	RemainQuota      decimal.Decimal  `json:"remain_quota"`
	PayLevel         model.PayLevel   `json:"pay_level"`
	DailyLimit       *int64           `json:"daily_limit"`
}

type CallbackRequest

type CallbackRequest struct {
	State string `json:"state"`
	Code  string `json:"code"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL