|
|
@@ -157,40 +157,39 @@ type ServiceContext struct {
|
|
|
}
|
|
|
|
|
|
// GetUserId defined TODO
|
|
|
-func (sc *ServiceContext) GetUserId(r *http.Request) (int64, error) {
|
|
|
+func (sc *ServiceContext) GetClaims(r *http.Request) (int64, string, error) {
|
|
|
parser := token.NewTokenParser(token.WithResetDuration(time.Minute))
|
|
|
tok, err := parser.ParseToken(r, sc.Config.JwtAuth.AccessSecret, "")
|
|
|
if err != nil {
|
|
|
- return 0, err
|
|
|
+ return 0, "", err
|
|
|
}
|
|
|
+ userId, sessionKey := int64(0), ""
|
|
|
m := tok.Claims.(jwt.MapClaims)
|
|
|
switch nbf := m["userId"].(type) {
|
|
|
case string:
|
|
|
- i, _ := strconv.ParseInt(nbf, 10, 64)
|
|
|
- return i, err
|
|
|
+ i, err := strconv.ParseInt(nbf, 10, 64)
|
|
|
+ if err != nil {
|
|
|
+ return 0, "", err
|
|
|
+ }
|
|
|
+ userId = i
|
|
|
case json.Number:
|
|
|
- v, _ := nbf.Int64()
|
|
|
- return v, err
|
|
|
- }
|
|
|
- return 0, err
|
|
|
-}
|
|
|
-
|
|
|
-// GetSessionKey defined TODO
|
|
|
-func (sc *ServiceContext) GetSessionKey(r *http.Request) (string, error) {
|
|
|
- parser := token.NewTokenParser(token.WithResetDuration(time.Minute))
|
|
|
- tok, err := parser.ParseToken(r, sc.Config.JwtAuth.AccessSecret, "")
|
|
|
- if err != nil {
|
|
|
- return "", err
|
|
|
+ v, err := nbf.Int64()
|
|
|
+ if err != nil {
|
|
|
+ return 0, "", err
|
|
|
+ }
|
|
|
+ userId = v
|
|
|
}
|
|
|
- m := tok.Claims.(jwt.MapClaims)
|
|
|
switch nbf := m["sessionKey"].(type) {
|
|
|
case string:
|
|
|
- return nbf, err
|
|
|
+ sessionKey = nbf
|
|
|
case json.Number:
|
|
|
- v, _ := nbf.Int64()
|
|
|
- return fmt.Sprintf("%v", v), err
|
|
|
+ v, err := nbf.Int64()
|
|
|
+ if err != nil {
|
|
|
+ return 0, "", err
|
|
|
+ }
|
|
|
+ sessionKey = fmt.Sprintf("%v", v)
|
|
|
}
|
|
|
- return "", err
|
|
|
+ return userId, sessionKey, err
|
|
|
}
|
|
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|