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) @register.simple_tag(takes_context=True)
def hopid_login_url(context): def hopid_login_url(context, method=None):
request = context['request'] request = context['request']
return get_hopid_login_url(request) return get_hopid_login_url(request, method)
@register.simple_tag(takes_context=True) @register.simple_tag(takes_context=True)
def hopid_login_button(context): def hopid_login_button(context, method=None):
request = context['request'] 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}) 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 return verifier, challenge
def get_hopid_login_url(request): def get_hopid_login_url(request, method=None):
nonce = secrets.token_urlsafe(32) nonce = secrets.token_urlsafe(32)
verifier, challenge = generate_pkce_pair() verifier, challenge = generate_pkce_pair()
@ -110,4 +110,8 @@ def get_hopid_login_url(request):
"code_challenge": challenge, "code_challenge": challenge,
"code_challenge_method": "S256" "code_challenge_method": "S256"
} }
if method:
params.update({'method': method.lower()})
return f"{base}?{urlencode(params)}" return f"{base}?{urlencode(params)}"