diff --git a/server/oauth2/auth.go b/server/oauth2/auth.go index 2dfb292..ca99b5a 100644 --- a/server/oauth2/auth.go +++ b/server/oauth2/auth.go @@ -148,6 +148,8 @@ func newAuthFunc(redirect string) stateHandler { return func(ctx *gin.Context, pi provider.ProviderInterface, code string) { log := ctx.MustGet("log").(*logrus.Entry) + ctx.Header("X-OAuth2-Type", CallbackTypeAuth) + ui, err := pi.GetUserInfo(ctx, code) if err != nil { log.Errorf("failed to get user info: %v", err) @@ -184,6 +186,7 @@ func newAuthFunc(redirect string) stateHandler { if errors.Is(err, middlewares.ErrUserBanned) || errors.Is(err, middlewares.ErrUserPending) { ctx.AbortWithStatusJSON(http.StatusOK, model.NewApiDataResp(gin.H{ + "type": CallbackTypeAuth, "message": err.Error(), "role": user.Role, })) diff --git a/server/oauth2/bind.go b/server/oauth2/bind.go index 7e14d17..ca340c3 100644 --- a/server/oauth2/bind.go +++ b/server/oauth2/bind.go @@ -69,6 +69,8 @@ func newBindFunc(userID, redirect string) stateHandler { return func(ctx *gin.Context, pi provider.ProviderInterface, code string) { log := ctx.MustGet("log").(*logrus.Entry) + ctx.Header("X-OAuth2-Type", CallbackTypeBind) + ui, err := pi.GetUserInfo(ctx, code) if err != nil { log.Errorf("failed to get user info: %v", err) diff --git a/server/oauth2/model.go b/server/oauth2/model.go index a9b15ce..5723e5b 100644 --- a/server/oauth2/model.go +++ b/server/oauth2/model.go @@ -1,6 +1,6 @@ package auth -type CallbackType string +type CallbackType = string const ( CallbackTypeAuth CallbackType = "auth"