From 0dc1d13720d2acd5b6491a49ecd652b7d33000e8 Mon Sep 17 00:00:00 2001 From: Sakurasan <1173092237@qq.com> Date: Tue, 2 May 2023 01:57:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0root=5Ftoken=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++++---- docker/Dockerfile | 2 +- opencat.go | 39 ++++++++++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3d6143a..119e075 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,13 @@ or ``` wget https://github.com/mirrors2/opencatd-open/raw/main/docker/docker-compose.yml ``` -## reset root token -``` -docker exec -it opencatd-open ./opencatd reset_root -``` +## 支持的命令 +>获取 root 的 token + - `docker exec opencatd-open opencatd root_token` + +>重置 root 的 token + - `docker exec opencatd-open opencatd reset_root` + ## Q&A 关于证书? diff --git a/docker/Dockerfile b/docker/Dockerfile index 6609c64..754d71c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,10 +12,10 @@ FROM alpine:latest AS runner # 设置alpine 时间为上海时间 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update && apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone \ - && export PATH=$PATH:/app # RUN apk update && apk --no-cache add openssl libgcc libstdc++ binutils WORKDIR /app COPY --from=builder /build/bin/opencatd /app/opencatd ENV GIN_MODE=release +ENV PATH=$PATH:/app EXPOSE 80 ENTRYPOINT ["/app/opencatd"] \ No newline at end of file diff --git a/opencat.go b/opencat.go index 4cb2d53..749b600 100644 --- a/opencat.go +++ b/opencat.go @@ -9,19 +9,44 @@ import ( "github.com/gin-gonic/gin" "github.com/google/uuid" + "gorm.io/gorm" ) func main() { args := os.Args[1:] - if len(args) > 0 && args[0] == "reset_root" { - log.Println("reset root token...") - ntoken := uuid.NewString() - if err := store.UpdateUser(uint(1), ntoken); err != nil { - log.Fatalln(err) + if len(args) > 0 { + switch args[0] { + case "reset_root": + log.Println("reset root token...") + if _, err := store.GetUserByID(uint(1)); err != nil { + if err == gorm.ErrRecordNotFound { + log.Println("请在opencat(或其他APP)客户端完成team初始化") + return + } else { + log.Fatalln(err) + return + } + } + ntoken := uuid.NewString() + if err := store.UpdateUser(uint(1), ntoken); err != nil { + log.Fatalln(err) + return + } + log.Println("new root token:", ntoken) + return + case "root_token": + log.Println("reset root token...") + if user, err := store.GetUserByID(uint(1)); err != nil { + log.Fatalln(err) + return + } else { + log.Println("root token:", user.Token) + return + } + default: return } - log.Println("new root token:", ntoken) - return + } port := os.Getenv("PORT") r := gin.Default()