github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/util/configv3/user.go (about) 1 package configv3 2 3 import "github.com/SermoDigital/jose/jws" 4 5 // User represents the user information provided by the JWT access token 6 type User struct { 7 Name string 8 } 9 10 // CurrentUser returns user information decoded from the JWT access token in 11 // .cf/config.json 12 func (config *Config) CurrentUser() (User, error) { 13 return decodeUserFromJWT(config.ConfigFile.AccessToken) 14 } 15 16 func decodeUserFromJWT(accessToken string) (User, error) { 17 if accessToken == "" { 18 return User{}, nil 19 } 20 21 token, err := jws.ParseJWT([]byte(accessToken[7:])) 22 if err != nil { 23 return User{}, err 24 } 25 26 claims := token.Claims() 27 return User{ 28 Name: claims.Get("user_name").(string), 29 }, nil 30 }