Amplify配置LinkedIn OAuth时仅传递单个Scope的问题咨询
Amplify配置LinkedIn OAuth时仅传递单个Scope的问题咨询
嘿,我之前也踩过Amplify配置LinkedIn OAuth scope的坑,太懂你这种明明配置了多个scope但请求里只传一个的郁闷了!咱们来一步步搞定它:
首先得明确,amplify_outputs.json只是Amplify部署后的输出文件,实际的scope配置得去修改你的Auth资源定义,这个文件没法直接改scope的。
下面分两种常见的配置场景给你说怎么操作:
如果你是用Amplify CLI管理项目:
- 在项目根目录运行
amplify update auth命令 - 选择「Modify social provider configuration (Facebook, Google, etc.)」选项
- 找到LinkedIn的配置项,然后输入你需要的scope列表——注意LinkedIn的scope是类似
r_liteprofile、r_emailaddress这类,多个的话用空格分隔就行 - 配置完成后,运行
amplify push重新部署资源,让新配置生效
- 在项目根目录运行
如果你是直接在项目的
amplifyconfiguration.json里配置:
找到auth部分的socialProviders下的LinkedIn节点,手动添加scope数组,比如:"auth": { // 其他配置... "socialProviders": { "LinkedIn": { "clientId": "[你的LinkedIn客户端ID]", "scope": ["r_liteprofile", "r_emailaddress", "w_member_social"] } } }改完之后记得重启你的前端服务,让配置重新加载
另外还有两个要注意的点:
- 要确保你请求的scope已经在LinkedIn开发者后台的应用里被启用了,不然就算Amplify传了这些scope,LinkedIn也会直接忽略掉多余的
- Amplify有时候会默认添加基础scope,所以你配置的列表会和默认的合并,但如果默认的不是你要的,也可以在配置里明确覆盖
等你按照上面的步骤改完,再发起授权请求,就能看到URL里带上你所有配置的scope啦~
内容来源于stack exchange
相关产品推荐
相关产品推荐

