我有一个 Go 服务器,类似的东西。路由器是 Gorilla MUX
var port string
if port = os.Getenv("PORT"); port == "" {
port = "3000"
}
srv := &http.Server{
Handler: router,
Addr: "localhost:" + port,
WriteTimeout: 15 * time.Second,
ReadTimeout: 15 * time.Second,
}
fmt.Println("Server is running on port " + port)
log.Fatal(srv.ListenAndServe())
Run Code Online (Sandbox Code Playgroud)
Dockerfile 是
# Build Go Server
FROM golang:1.14 AS go-build
WORKDIR /app/server
COPY cmd/ ./cmd
COPY internal/ ./internal
COPY go.mod ./
COPY go.sum ./
RUN go build ./cmd/main.go
CMD ["./main"]
Run Code Online (Sandbox Code Playgroud)
我构建成功了。我用以下命令运行它
docker run …Run Code Online (Sandbox Code Playgroud) 我在前端使用 Vue.js 和基于 JWT 的身份验证系统。我有刷新令牌和访问令牌。访问令牌的过期时间很短,而刷新令牌的过期时间则更长。我想向服务器发送请求以静默刷新用户的访问令牌。我知道访问令牌何时过期。我想在过期前刷新 1 分钟或其他时间。我怎样才能实现这个?我想通过在我的根组件上放置一个计数器来做到这一点,但我没有确切的解决方案。谢谢。
我正在开发一个Go在后端和基于 JWT 的身份验证中使用的 Web 应用程序。当用户登录时,我向他们发送过期时间较短的访问令牌和过期时间较长的刷新令牌。这两个令牌都包括username作为它们的有效载荷。它们是用不同的秘密创造的。我的问题是关于注销。当用户发送注销请求时,我想使其刷新令牌无效,以便他们在注销后需要再次登录。对于解决方案,我打算将该刷新令牌存储在我的数据库中的黑名单表中。我的问题是我是否需要在将刷新令牌存储到数据库之前对其进行哈希处理。谢谢。