feat: add Feishu OAuth integration
Implement Feishu OAuth provider using standard client: - Set up Feishu-specific endpoints for authorization, token, and userinfo - Use user_id as sub claim for Feishu user identification - Extract correct user information from nested 'data' field in Feishu responses Configuration requirements: - Set FEISHU_CLIENT_ID and FEISHU_CLIENT_SECRET environment variables to enable Feishu OAuth - Set ENABLE_OAUTH_SIGNUP=true to allow automatic user creation after OAuth login - Set DEFAULT_USER_ROLE=user to grant immediate access after OAuth registration - Set OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true to enable merging of existing user accounts with matching emails
This commit is contained in:
@@ -602,6 +602,8 @@ class OAuthManager:
|
||||
or (auth_manager_config.OAUTH_USERNAME_CLAIM not in user_data)
|
||||
):
|
||||
user_data: UserInfo = await client.userinfo(token=token)
|
||||
if provider == "feishu" and isinstance(user_data, dict) and "data" in user_data:
|
||||
user_data = user_data["data"]
|
||||
if not user_data:
|
||||
log.warning(f"OAuth callback failed, user data is missing: {token}")
|
||||
raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
|
||||
|
||||
Reference in New Issue
Block a user