Ruby on rails 如何指定OmniAuth动态请求的Facebook权限(又称范围)?

Ruby on rails 如何指定OmniAuth动态请求的Facebook权限(又称范围)?,ruby-on-rails,facebook-graph-api,omniauth,Ruby On Rails,Facebook Graph Api,Omniauth,这个问题类似于,但有一个警告 我正在使用OmniAuth授权我网站上的Facebook用户。对于常规登录/注册,可以向用户询问标准Facebook权限。但我的网站上有一个功能需要扩展权限(访问他们的Facebook照片)。我只想请求用户在使用我们网站的Facebook照片功能时的扩展权限 我在网上找到的关于如何为omniauth设置facebook权限的所有答案都是在omniauth初始值设定项中添加一个范围选项,如下所示: ActionController::Dispatcher.middle

这个问题类似于,但有一个警告

我正在使用OmniAuth授权我网站上的Facebook用户。对于常规登录/注册,可以向用户询问标准Facebook权限。但我的网站上有一个功能需要扩展权限(访问他们的Facebook照片)。我只想请求用户在使用我们网站的Facebook照片功能时的扩展权限

我在网上找到的关于如何为omniauth设置facebook权限的所有答案都是在omniauth初始值设定项中添加一个范围选项,如下所示:

ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Facebook, 'app_id', 'app_secret', {:scope => 'email,offline_access,the,scope,you,want}
但是我需要动态地定义范围,这样只有当用户使用照片功能时,他们才会被要求获得照片权限,而不是当他们只是第一次登录或注册时


有人知道怎么做吗?提前谢谢。

我想你做不好。因为你不能确定你的用户只使用照片功能。用户可以访问应用程序的所有部分照片功能和其他功能。当用户登录并从照片功能切换到其他功能时,您不能要求其重新登录。以访问此其他功能


所有用户都不会真正检查他们授权的访问类型,因此不必担心大量的权限询问。

看起来他们正在将其添加到Omniauth中,但它仍处于测试阶段

你加了一个

:setup => true
然后创建一个方法,在其中动态设置所需的选项(凭据/范围)


您可能已经找到了这个问题的解决方案,但我想我会为那些仍然希望解决这个问题的人提供帮助。我的解决方案允许您预先请求尽可能少的Facebook权限,然后根据应用程序的需要动态请求这些权限


希望这有帮助

当我的用户点击链接使用我的照片功能时,我可以很容易地将他们发送到/auth/facebook(即使他们已经登录),如果授予了正确的权限,也可以重定向到照片页面。问题是在单击链接时更改{:scope=“”},然后在完成后返回到{:scope=“”}。我需要知道,在appinit之后,是否可以像这样设置范围&如何设置范围。这是在一个主要网站上,因此%的用户在登录时会拒绝,因为sigin需要照片权限。这是一个很大的问题。谢谢,Mike!非常感谢。我把它转发给了一些我认为可能需要它的人。肖恩,很高兴听到它有帮助!感谢在我的新网站上提供了更多有趣的东西:)真的很好,我在我的用户模型上为不同的行为做了类似的事情,所以你的解决方案集成得非常完美!谢谢!