The timaan package is a token generator for your user's authentication process in your app whether it's a WEB, CLI, or Mobile applications.
Installation
go get -u github.com/itrepablik/timaan
Usage
This is the sample usage for the timaan package.
package main
import (
"fmt"
"time"
"github.com/itrepablik/itrlog"
"github.com/itrepablik/timaan"
)
func main() {
//*************************************************************************************
// Add new token request for token key e.g username: 'politz' after successful login
// This will serve as your session token stored in memory
//*************************************************************************************
tokenPayload := timaan.TP{
"LOG_LEVEL": "INFO",
"API_KEY": timaan.RandomToken(),
"USERNAME": "politz",
"EMAIL": "[email protected]",
"FIRST_NAME": "Juan",
"LAST_NAME": "Dela Cruz",
}
tok := timaan.TK{
TokenKey: "politz",
Payload: tokenPayload,
ExpireOn: time.Now().Add(time.Minute * 30).Unix(),
}
newToken, err := timaan.GenerateToken("politz", tok)
if err != nil {
itrlog.Fatal(err)
}
fmt.Println("newToken: ", newToken)
//*****************************************************************************
// Extract the token payload for any specific user, e.g username: 'politz'
// or any token key e.g: '54f2067c42ee4587bf239a58bcdd438a'
//*****************************************************************************
tok, err = timaan.DecodePayload("politz")
if err != nil {
itrlog.Fatal(err)
}
fmt.Println("TokenKey: ", tok.TokenKey)
payLoad := tok.Payload
for field, val := range payLoad {
fmt.Println(field, " : ", val)
}
//************************************************
// Example for email confirmation token
//************************************************
rt := timaan.RandomToken()
emailConfirmPayload := timaan.TP{
"USERNAME": "juan",
"EMAIL": "[email protected]",
}
tok = timaan.TK{
TokenKey: rt,
Payload: emailConfirmPayload,
ExpireOn: time.Now().Add(time.Minute * 30).Unix(),
}
newToken, err = timaan.GenerateToken(rt, tok)
if err != nil {
itrlog.Fatal(err)
}
confirmURL := "https://itrepablik.com/confirm/" + newToken
fmt.Println(confirmURL)
//*********************************************************************************
// Remove token for any specific user, e.g username: 'politz'
// Or remove any token key for e.g token key: '54f2067c42ee4587bf239a58bcdd438a'
//*********************************************************************************
isTokenRemove, err := timaan.UT.Remove("politz")
if err != nil {
itrlog.Fatal(err)
}
fmt.Println("isTokenRemove: ", isTokenRemove)
}
Subscribe to Maharlikans Code Youtube Channel:
Please consider subscribing to my Youtube Channel to recognize my work on this package. Thank you for your support!
https://www.youtube.com/channel/UCdAVUmldU9Jn2VntuQChHqQ/
License
Code is distributed under MIT license, feel free to use it in your proprietary projects as well.