"""passbook OTP Utils""" from django.utils.http import urlencode def otpauth_url(accountname, secret, issuer=None, digits=6): """Create otpauth according to https://github.com/google/google-authenticator/wiki/Key-Uri-Format""" # Ensure that the secret parameter is the FIRST parameter of the URI, this # allows Microsoft Authenticator to work. query = [ ("secret", secret), ("digits", digits), ("issuer", "passbook"), ] return "otpauth://totp/%s:%s?%s" % (issuer, accountname, urlencode(query))