Skip to content

Commit 5bdfc4b

Browse files
authored
Merge pull request #827 from lisongmin/support-list-params-in-prepare-grant-uri
2 parents 6e35a02 + 30ea3c5 commit 5bdfc4b

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

authlib/oauth2/rfc6749/parameters.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,14 @@ def prepare_grant_uri(
5454
if state:
5555
params.append(("state", state))
5656

57-
for k in kwargs:
58-
if kwargs[k] is not None:
59-
params.append((to_unicode(k), kwargs[k]))
57+
for k, value in kwargs.items():
58+
if value is not None:
59+
if isinstance(value, (list, tuple)):
60+
for v in value:
61+
if v is not None:
62+
params.append((to_unicode(k), v))
63+
else:
64+
params.append((to_unicode(k), value))
6065

6166
return add_params_to_uri(uri, params)
6267

tests/core/test_oauth2/test_rfc6749_misc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ def test_parse_implicit_response():
4848

4949
def test_prepare_grant_uri():
5050
grant_uri = parameters.prepare_grant_uri(
51-
"https://provider.test/authorize", "dev", "code", max_age=0
51+
"https://provider.test/authorize", "dev", "code", max_age=0, resource=["a", "b"]
5252
)
5353
assert (
5454
grant_uri
55-
== "https://provider.test/authorize?response_type=code&client_id=dev&max_age=0"
55+
== "https://provider.test/authorize?response_type=code&client_id=dev&max_age=0&resource=a&resource=b"
5656
)
5757

5858

0 commit comments

Comments
 (0)