github.com/tommi2day/gomodules@v1.13.2-0.20240423190010-b7d55d252a27/pwlib/totp.go (about) 1 package pwlib 2 3 import ( 4 "fmt" 5 6 "github.com/xlzd/gotp" 7 ) 8 9 // GetOtp calculates a standard 6 digit TOTP from given secret 10 func GetOtp(secret string) (val string, e error) { 11 e = nil 12 // trap panics 13 defer func() { 14 if err := recover(); err != nil { 15 e = fmt.Errorf("panic:%v", err) 16 } 17 }() 18 otp := gotp.NewDefaultTOTP(secret) 19 if otp != nil { 20 val = otp.Now() 21 } 22 return 23 }