Durudex Refresh Token implementation.
go get github.com/durudex/go-refresh
Generation of refresh token and receiving payload and full token:
import (
"fmt"
"github.com/durudex/go-refresh"
)
const (
sessionId = "2Fj7R4ERGtDdM5SBGl6mDesP2Qm"
objectId = "2Fj7R4WcK9KMn1FY2kCnKGbFtA0"
)
func main() {
r, err := refresh.New()
if err != nil { ... }
fmt.Println("Payload:", r.String())
fmt.Println("Token:", r.Token(sessionId, objectId))
}
Result:
Payload: ZpgdubxwoCROmgHJ0g8EzFhFsy5KopL4
Token: 2Fj7R4ERGtDdM5SBGl6mDesP2Qm.2Fj7R4WcK9KMn1FY2kCnKGbFtA0.ZpgdubxwoCROmgHJ0g8EzFhFsy5KopL4
Hashing of the refresh token using a secret key:
import (
"fmt"
"github.com/durudex/go-refresh"
)
const secretKey = "durudex"
func main() {
r, err := refresh.New()
if err != nil { ... }
h := r.Hash([]byte(secretKey))
fmt.Println("Hash:", fmt.Sprintf("%x", h))
}
Result:
Hash: 91b9b4ddda35be0338407fbaa76bb6adfe2dba8ad6719fe0ebae006c297b529f
Parsing refresh token from string:
import (
"fmt"
"github.com/durudex/go-refresh"
)
const fullToken = "2Fj7R4ERGtDdM5SBGl6mDesP2Qm.2Fj7R4WcK9KMn1FY2kCnKGbFtA0.ZpgdubxwoCROmgHJ0g8EzFhFsy5KopL4"
func main() {
token, err := refresh.Parse(fullToken)
if err != nil { ... }
fmt.Println("Payload:", token.Payload.String())
fmt.Println("Session Id:", token.Session)
fmt.Println("Object Id:", token.Object)
}
Result:
Payload: ZpgdubxwoCROmgHJ0g8EzFhFsy5KopL4
Session Id: 2Fj7R4ERGtDdM5SBGl6mDesP2Qm
Object Id: 2Fj7R4WcK9KMn1FY2kCnKGbFtA0