23 lines
688 B
Python
23 lines
688 B
Python
|
"""passbook Mod 2FA Utils"""
|
||
|
|
||
|
from django.conf import settings
|
||
|
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"""
|
||
|
|
||
|
accountname = accountname
|
||
|
issuer = issuer if issuer else getattr(settings, 'OTP_TOTP_ISSUER')
|
||
|
|
||
|
# Ensure that the secret parameter is the FIRST parameter of the URI, this
|
||
|
# allows Microsoft Authenticator to work.
|
||
|
query = [
|
||
|
('secret', secret),
|
||
|
('digits', digits),
|
||
|
('issuer', issuer),
|
||
|
]
|
||
|
|
||
|
return 'otpauth://totp/%s:%s?%s' % (issuer, accountname, urlencode(query))
|