entrypoint
This commit is contained in:
@@ -201,21 +201,37 @@ func ExtractTokenInfo(request http.Request) (string, string, []string) {
|
|||||||
reqToken = splitToken[1]
|
reqToken = splitToken[1]
|
||||||
}
|
}
|
||||||
if reqToken != "" {
|
if reqToken != "" {
|
||||||
token := strings.Split(reqToken, ".")
|
return extractFromToken(reqToken, "user_id"), extractFromToken(reqToken, "peer_id"), strings.Split(extractFromToken(reqToken, "groups"), ",")
|
||||||
if len(token) > 2 {
|
}
|
||||||
bytes, err := base64.RawURLEncoding.DecodeString(token[1])
|
return "", "", []string{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func extractFromToken(token string, attr string) string {
|
||||||
|
parts := strings.Split(token, ".")
|
||||||
|
if len(parts) < 2 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
payload := parts[1]
|
||||||
|
switch len(payload) % 4 {
|
||||||
|
case 2:
|
||||||
|
payload += "=="
|
||||||
|
case 3:
|
||||||
|
payload += "="
|
||||||
|
}
|
||||||
|
b, err := base64.URLEncoding.DecodeString(payload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", []string{}
|
return ""
|
||||||
}
|
}
|
||||||
var c Claims
|
var claims map[string]interface{}
|
||||||
err = json.Unmarshal(bytes, &c)
|
if err := json.Unmarshal(b, &claims); err != nil {
|
||||||
if err != nil {
|
return ""
|
||||||
return "", "", []string{}
|
|
||||||
}
|
}
|
||||||
return c.Session.IDToken.UserID, c.Session.IDToken.PeerID, c.Session.IDToken.Groups
|
ext, ok := claims["ext"].(map[string]interface{})
|
||||||
|
if !ok {
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
}
|
peerID, _ := ext[attr].(string)
|
||||||
return "", "", []string{}
|
return peerID
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitAPI(appName string, extraRoutes ...map[string][]string) {
|
func InitAPI(appName string, extraRoutes ...map[string][]string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user