Add optional method argument

This commit is contained in:
Ivan Nikolskiy 2025-06-16 21:34:17 +02:00
parent 026d99e925
commit 6acd430529
2 changed files with 9 additions and 5 deletions

View File

@ -30,14 +30,14 @@ register = template.Library()
@register.simple_tag(takes_context=True)
def hopid_login_url(context):
def hopid_login_url(context, method=None):
request = context['request']
return get_hopid_login_url(request)
return get_hopid_login_url(request, method)
@register.simple_tag(takes_context=True)
def hopid_login_button(context):
def hopid_login_button(context, method=None):
request = context['request']
url = get_hopid_login_url(request)
url = get_hopid_login_url(request, method)
return render_to_string('django_hopid/hopid_login_button.html', {'url': url})

View File

@ -92,7 +92,7 @@ def generate_pkce_pair():
return verifier, challenge
def get_hopid_login_url(request):
def get_hopid_login_url(request, method=None):
nonce = secrets.token_urlsafe(32)
verifier, challenge = generate_pkce_pair()
@ -110,4 +110,8 @@ def get_hopid_login_url(request):
"code_challenge": challenge,
"code_challenge_method": "S256"
}
if method:
params.update({'method': method.lower()})
return f"{base}?{urlencode(params)}"