diff --git a/cmd/webserver.go b/cmd/webserver.go index 380e7acb..6aad7bdd 100644 --- a/cmd/webserver.go +++ b/cmd/webserver.go @@ -115,12 +115,11 @@ func startWebServer(c *cli.Context) error { apiRoute.POST("/register.json", bindApi(api.Users.UserRegisterHandler)) } + apiRoute.GET("/logout.json", bindApi(api.Tokens.TokenRevokeCurrentHandler)) + apiV1Route := apiRoute.Group("/v1") apiV1Route.Use(bindMiddleware(middlewares.JWTAuthorization)) { - // Logout - apiV1Route.GET("/logout.json", bindApi(api.Tokens.TokenRevokeCurrentHandler)) - // Tokens apiV1Route.GET("/tokens/list.json", bindApi(api.Tokens.TokenListHandler)) apiV1Route.POST("/tokens/revoke.json", bindApi(api.Tokens.TokenRevokeHandler)) diff --git a/pkg/api/tokens.go b/pkg/api/tokens.go index da6e6e4f..6173b559 100644 --- a/pkg/api/tokens.go +++ b/pkg/api/tokens.go @@ -54,8 +54,19 @@ func (a *TokensApi) TokenListHandler(c *core.Context) (interface{}, *errs.Error) } func (a *TokensApi) TokenRevokeCurrentHandler(c *core.Context) (interface{}, *errs.Error) { - claims := c.GetTokenClaims() - uid := c.GetCurrentUid() + _, claims, err := a.tokens.ParseToken(c) + + if err != nil { + return nil, errs.NewIncompleteOrIncorrectSubmissionError(err) + } + + uid, err := utils.StringToInt64(claims.Id) + + if err != nil { + log.WarnfWithRequestId(c, "[tokens.TokenRevokeCurrentHandler] parse user id failed, because %s", err.Error()) + return nil, errs.NewIncompleteOrIncorrectSubmissionError(err) + } + userTokenId, err := utils.StringToInt64(claims.UserTokenId) if err != nil { diff --git a/src/lib/services.js b/src/lib/services.js index bb6e3f73..270f9cc0 100644 --- a/src/lib/services.js +++ b/src/lib/services.js @@ -59,7 +59,7 @@ export default { }); }, logout: () => { - return axios.get('v1/logout.json'); + return axios.get('logout.json'); }, refreshToken: () => { return axios.post('v1/tokens/refresh.json');