Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
6ecb7c80
Unverified
Commit
6ecb7c80
authored
Aug 01, 2024
by
Timothy Jaeryang Baek
Committed by
GitHub
Aug 01, 2024
Browse files
Merge pull request #4262 from michaelpoluektov/fix-redirect-uri
fix: Fix custom redirect URI for OAuth behind reverse proxy
parents
380cb93e
4619e32b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
4 deletions
+26
-4
backend/config.py
backend/config.py
+21
-0
backend/main.py
backend/main.py
+5
-4
No files found.
backend/config.py
View file @
6ecb7c80
...
...
@@ -349,6 +349,12 @@ GOOGLE_OAUTH_SCOPE = PersistentConfig(
os
.
environ
.
get
(
"GOOGLE_OAUTH_SCOPE"
,
"openid email profile"
),
)
GOOGLE_REDIRECT_URI
=
PersistentConfig
(
"GOOGLE_REDIRECT_URI"
,
"oauth.google.redirect_uri"
,
os
.
environ
.
get
(
"GOOGLE_REDIRECT_URI"
,
""
),
)
MICROSOFT_CLIENT_ID
=
PersistentConfig
(
"MICROSOFT_CLIENT_ID"
,
"oauth.microsoft.client_id"
,
...
...
@@ -373,6 +379,12 @@ MICROSOFT_OAUTH_SCOPE = PersistentConfig(
os
.
environ
.
get
(
"MICROSOFT_OAUTH_SCOPE"
,
"openid email profile"
),
)
MICROSOFT_REDIRECT_URI
=
PersistentConfig
(
"MICROSOFT_REDIRECT_URI"
,
"oauth.microsoft.redirect_uri"
,
os
.
environ
.
get
(
"MICROSOFT_REDIRECT_URI"
,
""
),
)
OAUTH_CLIENT_ID
=
PersistentConfig
(
"OAUTH_CLIENT_ID"
,
"oauth.oidc.client_id"
,
...
...
@@ -391,6 +403,12 @@ OPENID_PROVIDER_URL = PersistentConfig(
os
.
environ
.
get
(
"OPENID_PROVIDER_URL"
,
""
),
)
OPENID_REDIRECT_URI
=
PersistentConfig
(
"OPENID_REDIRECT_URI"
,
"oauth.oidc.redirect_uri"
,
os
.
environ
.
get
(
"OPENID_REDIRECT_URI"
,
""
),
)
OAUTH_SCOPES
=
PersistentConfig
(
"OAUTH_SCOPES"
,
"oauth.oidc.scopes"
,
...
...
@@ -424,6 +442,7 @@ def load_oauth_providers():
"client_secret"
:
GOOGLE_CLIENT_SECRET
.
value
,
"server_metadata_url"
:
"https://accounts.google.com/.well-known/openid-configuration"
,
"scope"
:
GOOGLE_OAUTH_SCOPE
.
value
,
"redirect_uri"
:
GOOGLE_REDIRECT_URI
.
value
,
}
if
(
...
...
@@ -436,6 +455,7 @@ def load_oauth_providers():
"client_secret"
:
MICROSOFT_CLIENT_SECRET
.
value
,
"server_metadata_url"
:
f
"https://login.microsoftonline.com/
{
MICROSOFT_CLIENT_TENANT_ID
.
value
}
/v2.0/.well-known/openid-configuration"
,
"scope"
:
MICROSOFT_OAUTH_SCOPE
.
value
,
"redirect_uri"
:
MICROSOFT_REDIRECT_URI
.
value
,
}
if
(
...
...
@@ -449,6 +469,7 @@ def load_oauth_providers():
"server_metadata_url"
:
OPENID_PROVIDER_URL
.
value
,
"scope"
:
OAUTH_SCOPES
.
value
,
"name"
:
OAUTH_PROVIDER_NAME
.
value
,
"redirect_uri"
:
OPENID_REDIRECT_URI
.
value
,
}
...
...
backend/main.py
View file @
6ecb7c80
...
...
@@ -1770,7 +1770,6 @@ class AddPipelineForm(BaseModel):
@
app
.
post
(
"/api/pipelines/add"
)
async
def
add_pipeline
(
form_data
:
AddPipelineForm
,
user
=
Depends
(
get_admin_user
)):
r
=
None
try
:
urlIdx
=
form_data
.
urlIdx
...
...
@@ -1813,7 +1812,6 @@ class DeletePipelineForm(BaseModel):
@
app
.
delete
(
"/api/pipelines/delete"
)
async
def
delete_pipeline
(
form_data
:
DeletePipelineForm
,
user
=
Depends
(
get_admin_user
)):
r
=
None
try
:
urlIdx
=
form_data
.
urlIdx
...
...
@@ -1891,7 +1889,6 @@ async def get_pipeline_valves(
models
=
await
get_all_models
()
r
=
None
try
:
url
=
openai_app
.
state
.
config
.
OPENAI_API_BASE_URLS
[
urlIdx
]
key
=
openai_app
.
state
.
config
.
OPENAI_API_KEYS
[
urlIdx
]
...
...
@@ -2143,6 +2140,7 @@ for provider_name, provider_config in OAUTH_PROVIDERS.items():
client_kwargs
=
{
"scope"
:
provider_config
[
"scope"
],
},
redirect_uri
=
provider_config
[
"redirect_uri"
],
)
# SessionMiddleware is used by authlib for oauth
...
...
@@ -2160,7 +2158,10 @@ if len(OAUTH_PROVIDERS) > 0:
async
def
oauth_login
(
provider
:
str
,
request
:
Request
):
if
provider
not
in
OAUTH_PROVIDERS
:
raise
HTTPException
(
404
)
redirect_uri
=
request
.
url_for
(
"oauth_callback"
,
provider
=
provider
)
# If the provider has a custom redirect URL, use that, otherwise automatically generate one
redirect_uri
=
OAUTH_PROVIDERS
[
provider
].
get
(
"redirect_uri"
)
or
request
.
url_for
(
"oauth_callback"
,
provider
=
provider
)
return
await
oauth
.
create_client
(
provider
).
authorize_redirect
(
request
,
redirect_uri
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment