some
This commit is contained in:
parent
195f5b0794
commit
0349ad9a29
@ -1,8 +1,11 @@
|
|||||||
package oclib
|
package oclib
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
@ -118,6 +121,48 @@ func InitDaemon(appName string) {
|
|||||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type IDTokenClaims struct {
|
||||||
|
PeerID string `json:"peer_id"`
|
||||||
|
Groups []string `json:"groups"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SessionClaims struct
|
||||||
|
type SessionClaims struct {
|
||||||
|
AccessToken map[string]interface{} `json:"access_token"`
|
||||||
|
IDToken IDTokenClaims `json:"id_token"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Claims struct
|
||||||
|
type Claims struct {
|
||||||
|
Session SessionClaims `json:"session"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExtractTokenInfo(request http.Request) (string, []string) {
|
||||||
|
reqToken := request.Header.Get("Authorization")
|
||||||
|
splitToken := strings.Split(reqToken, "Bearer ")
|
||||||
|
if len(splitToken) < 2 {
|
||||||
|
reqToken = ""
|
||||||
|
} else {
|
||||||
|
reqToken = splitToken[1]
|
||||||
|
}
|
||||||
|
if reqToken != "" {
|
||||||
|
token := strings.Split(reqToken, ".")
|
||||||
|
if len(token) > 2 {
|
||||||
|
bytes, err := base64.StdEncoding.DecodeString(token[2])
|
||||||
|
if err != nil {
|
||||||
|
return "", []string{}
|
||||||
|
}
|
||||||
|
var c Claims
|
||||||
|
err = json.Unmarshal(bytes, &c)
|
||||||
|
if err != nil {
|
||||||
|
return "", []string{}
|
||||||
|
}
|
||||||
|
return c.Session.IDToken.PeerID, c.Session.IDToken.Groups
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", []string{}
|
||||||
|
}
|
||||||
|
|
||||||
func Init(appName string) {
|
func Init(appName string) {
|
||||||
InitDaemon(appName)
|
InitDaemon(appName)
|
||||||
api := &tools.API{}
|
api := &tools.API{}
|
||||||
|
Loading…
Reference in New Issue
Block a user