Skip to content

Commit 23c749e

Browse files
committed
The type of key is different when SigningMethod is different.
1 parent 4b9c59f commit 23c749e

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

generates/jwt_access.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,19 @@ func (a *JWTAccessGenerate) Token(data *oauth2.GenerateBasic, isGenRefresh bool)
4949
}
5050

5151
token := jwt.NewWithClaims(a.SignedMethod, claims)
52-
access, err = token.SignedString(a.SignedKey)
52+
var key interface{}
53+
if a.isEs() {
54+
key, err = jwt.ParseECPrivateKeyFromPEM(a.SignedKey)
55+
if err != nil {
56+
return "", "", err
57+
}
58+
} else if a.isRs() {
59+
key, err = jwt.ParseRSAPrivateKeyFromPEM(a.SignedKey)
60+
if err != nil {
61+
return "", "", err
62+
}
63+
}
64+
access, err = token.SignedString(key)
5365
if err != nil {
5466
return
5567
}
@@ -61,3 +73,11 @@ func (a *JWTAccessGenerate) Token(data *oauth2.GenerateBasic, isGenRefresh bool)
6173

6274
return
6375
}
76+
77+
func (a *JWTAccessGenerate) isEs() bool {
78+
return strings.HasPrefix(a.SignedMethod.Alg(), "ES")
79+
}
80+
81+
func (a *JWTAccessGenerate) isRs() bool {
82+
return strings.HasPrefix(a.SignedMethod.Alg(), "RS")
83+
}

0 commit comments

Comments
 (0)