2

我一直在这里阅读 SpreeSocial 文档。我不知道如何通过配置删除提供者。我试图将最近的提供商从列表中删除,但这不起作用。

  SpreeSocial::OAUTH_PROVIDERS.pop

我设法让“使用 LinkedIn 登录”出现在视图中,但我想删除“使用 Google+ 登录”链接。

SpreeSocial::OAUTH_PROVIDERS << ['LinkedIn', 'linkedin', 'true']
SpreeSocial.init_provider('linkedin')

如果我想用 .class_eval 打开 SpreeSocial 中的类(我认为这可能有助于我编辑可用的提供程序),我应该将这些文件放在哪里以便它们自动加载,或者我需要在哪里配置它们?Spree/Rails 很新,所以对配置和初始化程序不太熟悉。谢谢您的帮助!

我希望能够在这里调用 SpreeSocial 模块上的 .class_eval

4

1 回答 1

0

SpreeSocial::OAUTH_PROVIDERS 将在代码初始化应用程序时重新定义,因此仅使用 pop 是不够的。由于 SpreeSocial 是一个模块而不是一个类,您需要:

1) 使用 module_eval 而不是 class_eval 来重新定义 SpreeSocial::OAUTH_PROVIDERS

SpreeSocial.module_eval do OAUTH_PROVIDERS = [ %w(Facebook facebook true), %w(Twitter twitter false), %w(Github github false), %w(Amazon amazon false) ] end

或者

2)您可以覆盖确定主动身份验证方法的方法不返回谷歌:https ://github.com/spree-contrib/spree_social/blob/master/app/models/spree/authentication_method.rb#L4-L12

于 2015-05-18T14:20:29.370 回答