Symfony 1.4 sfGuard检查perm和凭证以实现Google';非统组织2
我想将Google的Oauth2集成到我的symfony-1.4 CRM中。我已经成功地实现了这一点,在我自己的模块中扩展了sfGuardAuth,现在mysfGuardAuth被用于签名和注销。我在处理Google的Oauth2时有两个额外的动作:Symfony 1.4 sfGuard检查perm和凭证以实现Google';非统组织2,symfony-1.4,google-oauth,sfguard,Symfony 1.4,Google Oauth,Sfguard,我想将Google的Oauth2集成到我的symfony-1.4 CRM中。我已经成功地实现了这一点,在我自己的模块中扩展了sfGuardAuth,现在mysfGuardAuth被用于签名和注销。我在处理Google的Oauth2时有两个额外的动作: executeCkeckGoogleAccess(); executeOauth(); 问题是要检查Google的令牌是否仍然有效,我必须在everymodule的每个操作中重定向到mysfGuardAuth模块中的操作checkGoogleAc
executeCkeckGoogleAccess();
executeOauth();
问题是要检查Google的令牌是否仍然有效,我必须在everymodule的每个操作中重定向到mysfGuardAuth
模块中的操作checkGoogleAccess
我要做的是,在执行或不执行请求的操作之前,在symfony、sfGuard或任何东西检查正确的perm或凭据的同一位置,以隐式方式检查这一点
我只想写一次代码。
多谢各位 经过一些研究,sfGuard就是这样检查一切的 当您向模块操作发出请求时,在执行该操作之前,将显示一个新的sfContext。 sfContext获取扩展sfGuardUser的用户,并具有一些执行的方法在这里可以检查烫发、会话状态和其他所有内容 必须在
apps/yourApp/lib
默认情况下是apps/yourApp/lib/myUser
,它扩展了sfGuardUser。实现这一点最理想的方法是创建一个新的用户类,如:apps/yourApp/lib/yourAppUser
,它还扩展了sfGuardUser,并在其中扩展了方法initialize
和/或shutdown
,以及您想要的功能
通过这种方式,我已经实现了让谷歌的Oauth2在我的应用程序中工作
我希望这对更多的人有用
更新
上述所有描述都是正确的,但如果您希望总是在执行操作之前检查某些内容,则必须使用过滤器,而不是前面所述的过滤器。
过滤器在每个操作之前执行,因此您可以在那里签出您需要的任何内容,以访问当前上下文,并为用户设置新属性。在我的例子中,我想检查请求的操作是否需要google令牌,如果为true,那么另一个过滤器将检查用户是否已获取有效令牌,在这种情况下,不会发生任何事情,否则,用户将重定向到处理google令牌请求的模块/操作
不同过滤器、操作和请求之间的通信通过用户属性进行处理。
该用户是clas myOwnUser的一个对象,它扩展了sfGuardSecurityUser,在这里扩展了函数注销,以便删除保存在“myOwnNamespace”中的所有属性