我目前正在使用Go编写API,并且正在如何正确安全地进行身份验证/授权。
根据我的理解,这是怎么回事:
api/user/register
端点注册帐户(或现有用户api/user/login
)我的问题是关于刷新令牌的步骤。
我也在编写客户端应用程序(在React中);我不会向公众发布API。我只是将后端编写为客户端应用程序的API。
api/auth/token
路线吗?我在实现示例中继续阅读它们,我觉得我可以使用一些辅助函数来查询数据库并在我的后端代码中重新发出令牌,而不必查询另一个端点来执行此操作。很抱歉,如果他们提出愚蠢的问题,但我一直在仔细阅读详细说明auth规范的页面,而且页面之间的细微差别让我感到困惑,不确定什么是真正的&# 34;最佳实践"在生产中。
答案 0 :(得分:0)
我认为你对登录这个词感到困惑。而不是/api/user/login
我称之为/api/user/authentication
。
因此,如果请求的json附加到其主体,则返回有效的令牌。但是,如果请求获得了有效的Authentication Header,您只需在相同的时间段内发出一个有效的新令牌。这对前端特别有用,因此您可以尝试自动重新验证。
newUser := types.User{}
if r.Body != nil {
err := json.NewDecoder(r.Body).Decode(&newUser)
...
}
authHeader := r.Header.Get("Authorization")
if authHeader != "" {
_, err := USERAUTH.CHeckJWT(w,r)
if err !=nil {
...,
}
newToken := GenerateTokenFromToken(token)
}