Skip to content
This repository has been archived by the owner on Dec 13, 2022. It is now read-only.

durudex-old/go-refresh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Refresh

Durudex Refresh Token implementation.

Setup

go get github.com/durudex/go-refresh

Usage

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