23 lines
		
	
	
		
			689 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			689 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""passbook Mod TOTP 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))
 |