ruby-on-rails - Linkedin Omniauth gem 'omniauth-linkedin-oauth2' 验证失败!invalid_credentials: OAuth2::Error
问题描述
我有一个应用程序运行成功的Google和Facebook全方位身份验证运行。我也想用omniauth添加Linkedin登录。一切似乎都很好,直到我通过将:scope => 'r_emailaddress'添加到该行来请求电子邮件地址
设计.rb
config.omniauth :linkedin, ENV['LINKEDIN_CLIENT_ID'], ENV['LINKEDIN_CLIENT_SECRET'], :scope => 'r_emailaddress', :fields => ['email', 'id', 'first-name', 'last-name']
如果我删除了r_emailaddress并添加了任何其他范围,如r_liteprofile,那么一切似乎都是正确的
config.omniauth :linkedin, ENV['LINKEDIN_CLIENT_ID'], ENV['LINKEDIN_CLIENT_SECRET'], :scope => 'r_liteprofile', :fields => ['email', 'id', 'first-name', 'last-name']
宝石文件
gem 'omniauth-linkedin-oauth2'
成功将所有凭据放在Linkedin页面上后,后端和前端出现错误,应用程序重定向到主页并且在UI中没有给出任何错误。
它在日志中抛出的错误是
ERROR -- omniauth: (linkedin) Authentication failure! invalid_credentials: OAuth2::Error, :
{"serviceErrorCode":100,"message":"Not enough permissions to access: GET /me","status":403}
如果有人能在这件事上帮助我,那就太好了。
解决方案
删除范围和字段并尝试以下操作:
config.omniauth :linkedin, ENV['LINKEDIN_CLIENT_ID'], ENV['LINKEDIN_CLIENT_SECRET']
推荐阅读
- javascript - 弹拨功能组成
- android - 如何在 FirebaseRecyclerOptions 中过滤数据
- java - 如何在不同服务器上平衡 Spring UsernamePasswordAuthenticationFilter
- c# - 如何在 C# 中创建不同的 Json
- python - 在 QLineEdit 和 QComboBox 中以编程方式撤消和重做
- android-studio - 如何在 kotlin 的 if 语句中更改按钮的不透明度
- php - 将新记录 id 插入到 url
- mysql - 如何使用示例数据在 Kubernetes 中启动 mysql 容器?
- php - mysqli_query 有问题,返回 NULL 但查询在 phpmyadmin 中有效
- arrays - ES5 Javascript:从 2 个选择器中获取唯一值并添加/更新到数组