lua-resty-otp - Lua OTP lib for OpenResty
This library is already usable though still highly experimental.
The Lua API is still in flux and may change in the near future without notice.
local lib_otp = require ("resty.otp") local TOTP = lib_otp.totp_init("JBSWY3DPEHPK3PXP") -- UTC format of date `20200101 00:00:00` -> 946656000 -- use `ngx.time()` instead of `946656000` in prod env ngx.say("TOTP_Token -> ", TOTP:calc_token(946656000))Output
458138local lib_otp = require ("resty.otp") local TOTP = lib_otp.totp_init("JBSWY3DPEHPK3PXP") local url = TOTP:get_qr_url('OpenResty-TOTP', 'hello@example.com') local html = [[ <img src='%s' /> ]] html = string.format(html, url) ngx.header['Content-Type'] = 'text/html' ngx.say(html)Output
Scan the QR Code with Google Authenticator
local lib_otp = require ("resty.otp") local TOTP = lib_otp.totp_init("JBSWY3DPEHPK3PXP") local token = ngx.var.arg_otp ngx.say("Verify Token : ", TOTP:verify_token(token))Use OTP from Google Authenticator
curl localhost/check?otp=734923Output
Verify Token : truePlease report bugs or submit patches by
- Creating a ticket on the GitHub Issue Tracker.