SFRA社交登录点击登录报错:Service未在Business Manager配置
错误核心提示:
Wrapped java.lang.IllegalArgumentException: Service is not configured in Business Manager: SocialLoginCartridge.NaverIdLogin.token.Service (app_custom_social_login/cartridge/services/NaverIdLoginService.js#3)
这说明代码中调用的服务未在Business Manager(BM)中配置,或配置的服务ID与代码不匹配,以下是具体解决步骤:
核对代码中的服务ID
打开app_custom_social_login/cartridge/services/NaverIdLoginService.js第3行,确认代码中指定的服务ID为SocialLoginCartridge.NaverIdLogin.token.Service,记录该ID的完整拼写(大小写、标点均需严格匹配)。在BM中创建并配置对应服务
- 登录BM,进入
Administration > Operations > Services - 点击
New新建服务:- Service ID:填入
SocialLoginCartridge.NaverIdLogin.token.Service(必须和代码中的ID完全一致) - Service Type:选择
HTTP(适配Naver OAuth的token请求) - Base URL:填写Naver官方提供的token接口地址,例如
https://nid.naver.com/oauth2.0/token - 其他配置:根据Naver OAuth文档设置请求方法(POST)、请求参数、认证方式等
- Service ID:填入
- 保存后确认服务状态为
Active
- 登录BM,进入
验证服务调用逻辑
检查代码中获取服务的逻辑,确保使用serviceRegistry.get('SocialLoginCartridge.NaverIdLogin.token.Service')来正确引用配置的服务,避免拼写错误。确认Cartridge加载配置
进入BM的Site > Manage Sites > [目标站点] > Settings,查看Cartridges列表,确保app_custom_social_login已添加且加载顺序正确(需在SFRA基础cartridge之后)。
内容的提问来源于stack exchange,提问作者Ali Zia

