From 1c46d030ab56f0f2249d8842d791f0d2ce1d5a02 Mon Sep 17 00:00:00 2001 From: "Laisky.Cai" Date: Thu, 19 Oct 2023 09:42:47 +0000 Subject: [PATCH] feat: Implement API endpoints for user management and information retrieval - Added new API endpoints for user information retrieval, registration, login, logout, self-management, administration, options management, channel management, token management, redemption management, log management, and group retrieval - Improved authentication flow with GitHub, WeChat, and email - Added a function `GetSelfByToken` for getting user information using an OpenAI API token --- controller/user.go | 10 ++++++++++ router/api-router.go | 1 + 2 files changed, 11 insertions(+) diff --git a/controller/user.go b/controller/user.go index 8fd10b82..9d069306 100644 --- a/controller/user.go +++ b/controller/user.go @@ -312,6 +312,16 @@ func GetAffCode(c *gin.Context) { return } +// GetSelfByToken get user by openai api token +func GetSelfByToken(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "uid": c.GetInt("id"), + "token_id": c.GetInt("token_id"), + "username": c.GetString("username"), + }) + return +} + func GetSelf(c *gin.Context) { id := c.GetInt("id") user, err := model.GetUserById(id, false) diff --git a/router/api-router.go b/router/api-router.go index da3f9e61..49cdff9c 100644 --- a/router/api-router.go +++ b/router/api-router.go @@ -19,6 +19,7 @@ func SetApiRouter(router *gin.Engine) { apiRouter.GET("/home_page_content", controller.GetHomePageContent) apiRouter.GET("/verification", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.SendEmailVerification) apiRouter.GET("/reset_password", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.SendPasswordResetEmail) + apiRouter.GET("/user/get-by-token", middleware.TokenAuth(), controller.GetSelfByToken) apiRouter.POST("/user/reset", middleware.CriticalRateLimit(), controller.ResetPassword) apiRouter.GET("/oauth/github", middleware.CriticalRateLimit(), controller.GitHubOAuth) apiRouter.GET("/oauth/state", middleware.CriticalRateLimit(), controller.GenerateOAuthCode)