Skip to content

Commit c3cd6bd

Browse files
committed
refactor: use bearer token in auth middleware
1 parent 83c81aa commit c3cd6bd

3 files changed

Lines changed: 12 additions & 85 deletions

File tree

app/middlewares/auth_middleware.go

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,17 @@ func (m *Middleware) AuthMiddleware(allowedRole string) domain.MiddlewareFunc {
1717
ctx, span := tracer.Start(request.Context(), "auth middleware")
1818
defer span.End()
1919

20-
// token := utils.ExtractBearerToken(request)
21-
// if len(*token) < 5 {
22-
// ngelog.Error(ctx, "failed to extract bearer token", nil)
23-
// utils.Response(domain.HttpResponse{
24-
// Code: 401,
25-
// Message: "Unauthorized",
26-
// Data: nil,
27-
// }, writer)
28-
// return
29-
// }
30-
31-
tokenRaw, err := request.Cookie("token")
32-
if err != nil {
33-
if err == http.ErrNoCookie {
34-
ngelog.Error(ctx, "failed to get token from cookie", nil)
35-
utils.Response(domain.HttpResponse{
36-
Code: 401,
37-
Message: "Unauthorized",
38-
Data: nil,
39-
}, writer)
40-
return
41-
} else {
42-
utils.Response(domain.HttpResponse{
43-
Code: 401,
44-
Message: "Unauthorized",
45-
Data: nil,
46-
}, writer)
47-
return
48-
}
20+
token := utils.ExtractBearerToken(request)
21+
if len(*token) < 5 {
22+
ngelog.Error(ctx, "failed to extract bearer token", nil)
23+
utils.Response(domain.HttpResponse{
24+
Code: 401,
25+
Message: "Unauthorized",
26+
Data: nil,
27+
}, writer)
28+
return
4929
}
50-
token := &tokenRaw.Value
51-
30+
5231
verifyToken, err := m.Jwt.VerifyToken(*token)
5332
if err != nil {
5433
ngelog.Error(ctx, "failed to verify token", err)

app/users/delivery/http/login_users.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import (
44
"encoding/json"
55
"io"
66
"net/http"
7-
"time"
87

9-
"github.com/hammer-code/lms-be/config"
108
"github.com/hammer-code/lms-be/domain"
119
"github.com/hammer-code/lms-be/utils"
1210
)
@@ -44,20 +42,6 @@ func (h Handler) Login(w http.ResponseWriter, r *http.Request) {
4442
return
4543
}
4644

47-
expiredTime := time.Now().Local().Add(time.Duration(60) * time.Minute)
48-
49-
cookie := http.Cookie{
50-
Name: "token",
51-
Value: token,
52-
Expires: expiredTime,
53-
Path: "/",
54-
HttpOnly: true,
55-
Secure: config.GetConfig().APP_ENV != "development",
56-
}
57-
58-
// Atur cookie pada response writer.
59-
http.SetCookie(w, &cookie)
60-
6145
utils.Response(domain.HttpResponse{
6246
Code: 200,
6347
Message: "Login successfully",

app/users/delivery/http/logout_users.go

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@ package http
22

33
import (
44
"net/http"
5-
"time"
65

7-
"github.com/hammer-code/lms-be/config"
86
"github.com/hammer-code/lms-be/domain"
9-
"github.com/hammer-code/lms-be/pkg/ngelog"
107
"github.com/hammer-code/lms-be/utils"
118
)
129

@@ -22,47 +19,14 @@ import (
2219
// @Failure 200 {object} domain.HttpResponse
2320
// @Router /api/v1/auth/logout [post]
2421
func (h Handler) Logout(w http.ResponseWriter, r *http.Request) {
25-
// token := utils.ExtractBearerToken(r)
26-
27-
tokenRaw, err := r.Cookie("token")
28-
if err != nil {
29-
if err == http.ErrNoCookie {
30-
ngelog.Error(r.Context(), "failed to get token from cookie", nil)
31-
utils.Response(domain.HttpResponse{
32-
Code: 401,
33-
Message: "Unauthorized",
34-
Data: nil,
35-
}, w)
36-
return
37-
} else {
38-
utils.Response(domain.HttpResponse{
39-
Code: 401,
40-
Message: "Unauthorized",
41-
Data: nil,
42-
}, w)
43-
return
44-
}
45-
}
46-
token := &tokenRaw.Value
22+
token := utils.ExtractBearerToken(r)
4723

48-
err = h.usecase.Logout(r.Context(), *token)
24+
err := h.usecase.Logout(r.Context(), *token)
4925
if err != nil {
5026
resp := utils.CustomErrorResponse(err)
5127
utils.Response(resp, w)
5228
return
5329
}
54-
55-
expiredTime := time.Now().Local().Add(time.Duration(0) * time.Minute)
56-
cookie := http.Cookie{
57-
Name: "token",
58-
Value: "",
59-
Expires: expiredTime,
60-
Path: "/",
61-
HttpOnly: true,
62-
Secure: config.GetConfig().APP_ENV != "development",
63-
}
64-
65-
http.SetCookie(w, &cookie)
6630

6731
utils.Response(domain.HttpResponse{
6832
Code: 200,

0 commit comments

Comments
 (0)