Skip to content

Commit 9caf2a0

Browse files
committed
fix(auth): remove useless token sources array
1 parent 9530292 commit 9caf2a0

File tree

1 file changed

+18
-42
lines changed

1 file changed

+18
-42
lines changed

internal/auth/http.go

Lines changed: 18 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@ func Middleware(storage Storage) gin.HandlerFunc {
5353
}
5454

5555
var (
56-
// ErrNoTokenFound is returned when no token is found.
57-
ErrNoTokenFound = errors.New("no token found")
58-
5956
// ErrBadTokenFormat is returned when the Authorization header is not in the correct Bearer format.
6057
ErrBadTokenFormat = errors.New("bad token format")
6158
)
@@ -65,54 +62,33 @@ var (
6562
// It will return an error if the token is invalid.
6663
// It adds nothing to the context if the token is not present.
6764
func ExtractToken(r *http.Request, storage Storage) (context.Context, error) {
68-
type TokenSource func(r *http.Request) (string, error)
69-
70-
tokenSources := []TokenSource{
71-
// Header: Authorization: Bearer <token>
72-
func(r *http.Request) (string, error) {
73-
authHeaderContent := r.Header.Get("Authorization")
74-
if authHeaderContent == "" {
75-
return "", ErrNoTokenFound
76-
}
77-
78-
token, ok := strings.CutPrefix(authHeaderContent, "Bearer ")
79-
if !ok {
80-
return "", ErrBadTokenFormat
81-
}
65+
authHeaderContent := r.Header.Get("Authorization")
66+
if authHeaderContent == "" {
67+
return r.Context(), nil
68+
}
8269

83-
return token, nil
84-
},
70+
token, ok := strings.CutPrefix(authHeaderContent, "Bearer ")
71+
if !ok {
72+
return nil, ErrBadTokenFormat
8573
}
8674

87-
for _, tokenSource := range tokenSources {
88-
token, err := tokenSource(r)
89-
if errors.Is(err, ErrNoTokenFound) {
90-
continue // try next token source
91-
}
92-
if err != nil {
93-
return nil, err
75+
tokenInfo, err := storage.Get(r.Context(), token)
76+
if err != nil {
77+
if errors.Is(err, ErrNotFound) {
78+
return r.Context(), nil
9479
}
9580

96-
tokenInfo, err := storage.Get(r.Context(), token)
97-
if err != nil {
98-
if errors.Is(err, ErrNotFound) {
99-
return r.Context(), nil
100-
}
101-
102-
return nil, err
103-
}
81+
return nil, err
82+
}
10483

105-
if err := tokenInfo.Validate(); err != nil {
106-
return nil, BadTokenInfoError{
107-
Token: token,
108-
Err: err,
109-
}
84+
if err := tokenInfo.Validate(); err != nil {
85+
return nil, BadTokenInfoError{
86+
Token: token,
87+
Err: err,
11088
}
111-
112-
return WithUser(r.Context(), tokenInfo), nil
11389
}
11490

115-
return r.Context(), nil
91+
return WithUser(r.Context(), tokenInfo), nil
11692
}
11793

11894
// BadTokenInfoError is returned when the token info is invalid.

0 commit comments

Comments
 (0)