github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/integration/helpers/token.go (about)

     1  package helpers
     2  
     3  import (
     4  	"strings"
     5  	"time"
     6  
     7  	"github.com/SermoDigital/jose/crypto"
     8  	"github.com/SermoDigital/jose/jws"
     9  	"github.com/SermoDigital/jose/jwt"
    10  	. "github.com/onsi/gomega"
    11  )
    12  
    13  // BuildTokenString returns a string typed JSON web token with the specified expiration time
    14  func BuildTokenString(expiration time.Time) string {
    15  	c := jws.Claims{}
    16  	c.SetExpiration(expiration)
    17  	c.Set("user_name", "some-user")
    18  	c.Set("user_id", "some-guid")
    19  	c.Set("origin", "uaa")
    20  	token := jws.NewJWT(c, crypto.Unsecured)
    21  	tokenBytes, err := token.Serialize(nil)
    22  	Expect(err).NotTo(HaveOccurred())
    23  	return string(tokenBytes)
    24  }
    25  
    26  // ParseTokenString takes a string typed token and returns a jwt.JWT struct representation of that token
    27  func ParseTokenString(token string) jwt.JWT {
    28  	strippedToken := strings.TrimPrefix(token, "bearer ")
    29  	jwt, err := jws.ParseJWT([]byte(strippedToken))
    30  	Expect(err).NotTo(HaveOccurred())
    31  	return jwt
    32  }