Directus集成LinkedIn OAuth2失败,回调遇参数缺失或认证错误
集成LinkedIn OAuth到Directus的问题求助
核心疑问
Directus支持OAuth2认证,但官方未明确提及是否支持LinkedIn OAuth,求有成功集成经验的用户确认可行性。
报错信息
初始回调错误
{ "errors": [ { "message": "Service \"oauth2\" is unavailable. Service returned unexpected response: A required parameter \"client_id\" is missing.", "extensions": { "service": "oauth2", "reason": "Service returned unexpected response: A required parameter \"client_id\" is missing", "code": "SERVICE_UNAVAILABLE" } } ] }
修改node_modules代码后新错误
{ "errors": [ { "message": "Service \"oauth2\" is unavailable. Service returned unexpected response: Client authentication failed.", "extensions": { "service": "oauth2", "reason": "Service returned unexpected response: Client authentication failed", "code": "SERVICE_UNAVAILABLE" } } ] }
当前配置详情
LinkedIn开发者平台配置
- 已生成client_id和client_secret
- 已验证组织
- OAuth权限范围:openid, profile, w_member_social, email
- 已添加两个产品:Share on LinkedIn、Sign In with LinkedIn using OpenID Connect
Directus .env配置
AUTH_LINKEDIN_DRIVER="oauth2" AUTH_LINKEDIN_CLIENT_ID="MY_CLIENT_ID" AUTH_LINKEDIN_CLIENT_SECRET="MY_CLIENT_SECRET" AUTH_LINKEDIN_AUTHORIZE_URL="https://www.linkedin.com/oauth/v2/authorization" AUTH_LINKEDIN_ACCESS_URL="https://www.linkedin.com/oauth/v2/accessToken" AUTH_LINKEDIN_PROFILE_URL="https://api.linkedin.com/v2/userinfo" AUTH_LINKEDIN_ALLOW_PUBLIC_REGISTRATION=true AUTH_LINKEDIN_DEFAULT_ROLE_ID="9a2d0b06-3dd5-4d07-9464-8ad6defce1af" AUTH_LINKEDIN_SCOPE="email,profile" AUTH_LINKEDIN_ICON="linkedin" AUTH_LINKEDIN_LABEL="LinkedIn" AUTH_LINKEDIN_EMAIL_KEY="email"
问题复现流程
- 访问
http://localhost:8055/auth/login/linkedin端点,正常重定向到LinkedIn认证页面; - 完成LinkedIn认证后,回调到
http://localhost:8055/auth/login/linkedin/callback,触发"client_id缺失"错误; - 尝试修改node_modules中的代码:
原代码:
修改为:tokenSet = await this.client.oauthCallback(this.redirectUrl, { code: payload['code'], state: payload['state'] }, { code_verifier: payload['codeVerifier'], state: codeChallenge }});tokenSet = await this.client.oauthCallback(this.redirectUrl, { code: payload['code'], state: payload['state'] }, { code_verifier: payload['codeVerifier'], state: codeChallenge },{exchangeBody:{client_id:"776czrm1do3mid",client_secret:"WPL_AP1.dpyruNgJIBPKB58Z.BElWWw=="}}); - 修改后触发"Client authentication failed"错误。
求助
求可行的解决方案,或成功集成LinkedIn OAuth到Directus的配置经验。
内容的提问来源于stack exchange,提问作者Viraj faldu
相关产品推荐
相关产品推荐

