Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 1.4 sfGuard检查perm和凭证以实现Google';非统组织2_Symfony 1.4_Google Oauth_Sfguard - Fatal编程技术网

Symfony 1.4 sfGuard检查perm和凭证以实现Google';非统组织2

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

我想将Google的Oauth2集成到我的symfony-1.4 CRM中。我已经成功地实现了这一点,在我自己的模块中扩展了sfGuardAuth,现在mysfGuardAuth被用于签名和注销。我在处理Google的Oauth2时有两个额外的动作:

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”中的所有属性