2009-07-30 42 views

回答

2

简短的回答是没有。我目前正在整合oauth-plugin的服务提供商与我自己的认证系统(此前authlogic,acts_as_authenticated和其他所有)。

oauth-plugin服务提供商通过代码生成器生成两个控制器,然后将其绑定到插件中的某些库文件中。所有这些文件都希望login_required类方法具有acts_as_authenticated使用的相同语义。

authlogic不做任何假设你的控制器所有,这样就不会开箱即用OAuth的插件工作,但是该设计决策也意味着这将是相当容易的结构在你的控制器预期的方式。因此,应该(可能很平常)轻松地构建一个垫片以支持oauth-plugin

但在我的情况下,我决定运行生成器,然后从插件中提取我需要的内容并删除插件本身。我这样做的主要原因是我没有在我的授权系统中使用login_required方法,所以我必须猴子修补程序才能使它工作。其次,插件中有很多我不需要的东西。第三,真正库级的大部分内容已经被抽象为gem本身,所以生活在lib目录中的东西就是在这个怪异的无人区之间生成的代码和实际图书馆。

1

Authlogic有一个专门为它开发的插件,它可以找到here

+1

我需要的插件,使OAuth的服务器,但不允许用户使用来自第三方网站的凭据通过oauth协议登录 – 2009-07-31 11:24:42

2

我现在正在开始工作。我只是使用authlogic方法来推动我自己,使它发挥很好。 (我试图让供应商合作,所以authlogic-的OAuth似乎不适合我)

我会编辑,我去

def logged_in? 
    return true if current_user 
end 

def login_required 
    return true if logged_in? 
    store_location 
    redirect_to new_user_session_path and return false                                                      
end