我尝试生成并验证otp代码,这是我当前的代码:
package main
import (
"github.com/pquerna/otp/totp"
"bufio"
"fmt"
"time"
"os"
)
var SecretCode string = "X7L245V2F2HZ3AYSSZMM35QNRMFPAMLP"
func promptForPasscode() string {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter Passcode: ")
text, _ := reader.ReadString('\n')
return text
}
//AskCode -- ast code to use if is autorizated to use this application
func AskCode() {
fmt.Println("Validation TOTP...")
passcode := promptForPasscode()
valid := totp.Validate(passcode, SecretCode)
if !valid {
println("Invalid OTP passcode!")
os.Exit(1)
} else {
println("OTP Valid")
}
}
// SayOTP --
func SayOTP() {
code, _ := totp.GenerateCode(SecretCode, time.Now().UTC())
fmt.Printf("OTP Code : %s\n", code)
}
func main(){
SayOTP()
AskCode()
}
如果我在同一台机器上运行代码,则SayOTP
生成的代码对AskCode
有效。
问题是,当我在另一台机器上运行say代码时,该代码无效,我该如何解决?