sophuwu.site > goauth   
              34
            
             package goauth

import (
	"github.com/pquerna/otp"
	"github.com/pquerna/otp/totp"

	"fmt"
	"os"
)

func generate(user string) {
	key, err := totp.Generate(totp.GenerateOpts{
		Issuer:      "soph.local",
		AccountName: user,
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(key.URL())
}

func validate(key *otp.Key) {
	// Now Validate that the user's successfully added the passcode.
	fmt.Println("Validating TOTP...")
	passcode := promptForPasscode()
	valid := totp.Validate(passcode, key.Secret())
	if valid {
		println("Valid passcode!")
		os.Exit(0)
	} else {
		println("Invalid passcode!")
		os.Exit(1)
	}
}