feat: implement OAuth credentials refresh mechanism and update expires_at handling

This commit is contained in:
Yeuoly
2025-07-22 00:58:19 +08:00
parent 5d986c2cdf
commit 7fa952b1a2
7 changed files with 85 additions and 8 deletions

View File

@ -739,7 +739,7 @@ class ToolOAuthCallback(Resource):
raise Forbidden("no oauth available client config found for this tool provider")
redirect_uri = f"{dify_config.CONSOLE_API_URL}/console/api/oauth/plugin/{provider}/tool/callback"
credentials = oauth_handler.get_credentials(
credentials_response = oauth_handler.get_credentials(
tenant_id=tenant_id,
user_id=user_id,
plugin_id=plugin_id,
@ -747,7 +747,10 @@ class ToolOAuthCallback(Resource):
redirect_uri=redirect_uri,
system_credentials=oauth_client_params,
request=request,
).credentials
)
credentials = credentials_response.credentials
expires_at = credentials_response.expires_at
if not credentials:
raise Exception("the plugin credentials failed")
@ -758,8 +761,8 @@ class ToolOAuthCallback(Resource):
tenant_id=tenant_id,
provider=provider,
credentials=dict(credentials),
expires_at=expires_at,
api_type=CredentialType.OAUTH2,
expires_at=credentials.get("expires_at"),
)
return redirect(f"{dify_config.CONSOLE_WEB_URL}/oauth-callback")