From 5dcec3f20af68c37866bdf61ab9a132b3ae64bb0 Mon Sep 17 00:00:00 2001 From: thinker007 Date: Sun, 17 Sep 2023 21:28:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0wechat=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E6=80=A7=E6=A3=80=E6=B5=8B=EF=BC=8C=E4=B8=BA?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8=E5=BE=AE=E4=BF=A1=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=B3=A8=E5=86=8C=E6=9C=8D=E5=8A=A1=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=89=8D=E6=A3=80=E6=B5=8B=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E7=9A=84=E5=8F=AF=E7=94=A8=E6=80=A7=EF=BC=8C?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=A2=AB=E5=8D=A0=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- controller/wechat.go | 18 ++++++++++++++++++ router/api-router.go | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0b2856cc..bca4b7ee 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ upload *.exe *.db build -*.db-journal \ No newline at end of file +*.db-journal +one-api diff --git a/controller/wechat.go b/controller/wechat.go index babfbc87..380cea3b 100644 --- a/controller/wechat.go +++ b/controller/wechat.go @@ -172,3 +172,21 @@ func WeChatBind(c *gin.Context) { }) return } + +func IsWeChatIdAvailable(c *gin.Context) { + + wechatId := c.Query("wechat_id") + + if model.IsWeChatIdAlreadyTaken(wechatId) { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": "该微信账号已被绑定,不可用", + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "success": true, + "message": "该微信账号未绑定任何账号,可用", + }) + return +} diff --git a/router/api-router.go b/router/api-router.go index 60962d9b..ec43595e 100644 --- a/router/api-router.go +++ b/router/api-router.go @@ -23,6 +23,7 @@ func SetApiRouter(router *gin.Engine) { apiRouter.GET("/oauth/github", middleware.CriticalRateLimit(), controller.GitHubOAuth) apiRouter.GET("/oauth/state", middleware.CriticalRateLimit(), controller.GenerateOAuthCode) apiRouter.GET("/oauth/wechat", middleware.CriticalRateLimit(), controller.WeChatAuth) + apiRouter.GET("/oauth/wechat/is_available", middleware.CriticalRateLimit(), controller.IsWeChatIdAvailable) apiRouter.GET("/oauth/wechat/bind", middleware.CriticalRateLimit(), middleware.UserAuth(), controller.WeChatBind) apiRouter.GET("/oauth/email/bind", middleware.CriticalRateLimit(), middleware.UserAuth(), controller.EmailBind)