3

我在一个项目中使用 Zend 框架,并且我正在创建一个仅用于身份验证的控制器。在这个项目中,我们将接受用户通过 facebook、twitter、myspace 等其他网站的帐户进行注册。为此,我们将使用 OAuth。但我有一个疑问,我应该把每个 OAuth 站点相关身份验证的逻辑放在哪里?例如只有facebook,在我的控制器中占据了50行代码,这样我的控制器就不会瘦了……

我想知道我应该把这个放在哪里。为每个站点创建一个 Zend_Auth 适配器,只为此创建一个服务,最好的方法是什么?

对不起可怜的英语。:)

4

2 回答 2

1

您的 OAuth 逻辑应该存在于模型中,就像您的所有业务逻辑一样。你的控制器应该做的是控制程序流和设置视图变量以在你的视图脚本中使用。

亲切的问候加里

于 2011-06-04T08:37:09.917 回答
1

JF Austin有一个相当通用的 OAuth 身份验证适配器实现,它使用Zend_Oauth_Consumer。从那里为 Twitter、Facebook 等创建特定的子类似乎很简单。他甚至似乎已经有了一个Twitter 适配器在他的博客文章中描述了适配器的使用。

或者,请注意Lloyd Watkin这篇文章。

结果:所有 OAuth 逻辑都隐藏在这些适配器中。然后,您的控制器可以实例化此身份验证适配器,将其提供给Zend_Auth::authenticate($adapter),然后根据返回的结果采取行动,使控制器专注于更高级别的应用程序连接。

于 2011-06-04T10:05:56.840 回答