跳至主要內容

生成基於時間的一次性驗證碼 (utils.totp_next)

聲明

驗證碼, 錯誤資訊 = utils.totp_next(時間戳, 連結[, 金鑰])

參數

  • 時間戳
    整數型,Unix 時間戳,單位為秒;傳入 -1 表示使用目前時間
  • 連結
    文字型,TOTP 連結,格式為 otpauth://totp/...
  • 金鑰
    文字型,Base32 格式,可選參數;傳入後將使用該金鑰生成驗證碼

回傳值

  • 驗證碼
    文字型,生成的一次性驗證碼
  • 錯誤資訊
    文字型,生成失敗時返回錯誤資訊

說明

該函式在 20260107 以後版本方可使用
根據 TOTP 連結生成目前時間對應的一次性驗證碼
連結中通常需要包含 secret,可選包含 digitsperiodalgorithm
algorithm 可使用 SHA1SHA256SHA512

範例

local url = "otpauth://totp/Demo:alice?secret=JBSWY3DPEHPK3PXP&issuer=Demo&digits=6&period=30&algorithm=SHA1"

local code, err = utils.totp_next(-1, url)
if code then
nLog(code)
else
nLog(err)
end