Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions authlib/integrations/starlette_client/apps.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from starlette.datastructures import URL
from starlette.responses import RedirectResponse
from ..base_client import OAuthError
from ..base_client import BaseApp
Expand Down Expand Up @@ -26,6 +27,10 @@ async def authorize_redirect(self, request, redirect_uri=None, **kwargs):
:param kwargs: Extra parameters to include.
:return: A HTTP redirect response.
"""

# Handle Starlette >= 0.26.0 where redirect_uri may now be a URL and not a string
if redirect_uri and isinstance(redirect_uri, URL):
redirect_uri = str(redirect_uri)
rv = await self.create_authorization_url(redirect_uri, **kwargs)
await self.save_authorize_data(request, redirect_uri=redirect_uri, **rv)
return RedirectResponse(rv['url'], status_code=302)
Expand Down