|
|
@@ -8,6 +8,7 @@ import (
|
|
|
"fmt"
|
|
|
"net/http"
|
|
|
"path"
|
|
|
+ "strconv"
|
|
|
"time"
|
|
|
|
|
|
"git.i2edu.net/i2/go-zero/core/stores/sqlx"
|
|
|
@@ -162,7 +163,16 @@ func (sc *ServiceContext) GetUserId(r *http.Request) (int64, error) {
|
|
|
if err != nil {
|
|
|
return 0, err
|
|
|
}
|
|
|
- return tok.Claims.(jwt.MapClaims)["userId"].(int64), err
|
|
|
+ m := tok.Claims.(jwt.MapClaims)
|
|
|
+ switch nbf := m["userId"].(type) {
|
|
|
+ case string:
|
|
|
+ i, _ := strconv.ParseInt(nbf, 10, 64)
|
|
|
+ return i, err
|
|
|
+ case json.Number:
|
|
|
+ v, _ := nbf.Int64()
|
|
|
+ return v, err
|
|
|
+ }
|
|
|
+ return 0, err
|
|
|
}
|
|
|
|
|
|
// GetSessionKey defined TODO
|
|
|
@@ -172,7 +182,15 @@ func (sc *ServiceContext) GetSessionKey(r *http.Request) (string, error) {
|
|
|
if err != nil {
|
|
|
return "", err
|
|
|
}
|
|
|
- return tok.Claims.(jwt.MapClaims)["sessionKey"].(string), err
|
|
|
+ m := tok.Claims.(jwt.MapClaims)
|
|
|
+ switch nbf := m["sessionKey"].(type) {
|
|
|
+ case string:
|
|
|
+ return nbf, err
|
|
|
+ case json.Number:
|
|
|
+ v, _ := nbf.Int64()
|
|
|
+ return fmt.Sprintf("%v", v), err
|
|
|
+ }
|
|
|
+ return "", err
|
|
|
}
|
|
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|