小编Jon*_*ers的帖子

创建一个symfony2手动记住我的cookie(FOSUserBundle)

有人可以解释一下如何在控制器中手动创建记住我的cookie吗?

我希望用户在按下"注册"按钮后保持登录状态,而不必在之后使用他们的凭据登录.

我试图手动创建一个cookie,但我猜测cookie值是不正确的,因此"记住我"功能不起作用.设置具有正确名称的cookie.我检查过了.

当使用具有用户凭据的正常登录过程时,记住我的功能按预期工作.

security.yml security.yml记得我

security:
   firewalls:
       main:
           remember_me:
               lifetime: 86400
               domain:   ~
               path:     /
               key:      myKey
Run Code Online (Sandbox Code Playgroud)

这就是我现在所拥有的,即使设置了cookie,它也不起作用.

$um = $this->get('fos_user.user_manager');
$member = $um->createUser();

… Form stuff with bindRequest etc.

$um->updatePassword($member);
$um->updateUser($member);

$providerKey = $this->container->getParameter('fos_user.firewall_name');
$securityKey = 'myKey';

$token = new RememberMeToken($member, $providerKey, $securityKey,
$member->getRoles());
$this->container->get('security.context')->setToken($token);

$redirectResponse = new RedirectResponse($url);
$redirectResponse->headers->setCookie(
   new \Symfony\Component\HttpFoundation\Cookie(
       'REMEMBERME',
       base64_encode(implode(':', array($member->getUsername(),
$member->getPassword()))),
       time() + 60*60*24
   )
);
return $redirectResponse;
Run Code Online (Sandbox Code Playgroud)

更新:

我也尝试使用反射处理PersistentTokenBasedRememberMeServices类,但它不起作用.一个cookie被设置但它不起作用

$token = $this->container->get('security.context')->getToken();

$providerKey = $this->container->getParameter('fos_user.firewall_name');
$securityKey = 'myKey';

$persistenService = new
PersistentTokenBasedRememberMeServices(array($um), …
Run Code Online (Sandbox Code Playgroud)

remember-me symfony fosuserbundle

8
推荐指数
2
解决办法
9678
查看次数

使用Vim在PHP脚本中突出显示真正的SQL语法

我知道可以使用该选项在PHP脚本中启用SQL语法突出显示

let php_sql_query=1
Run Code Online (Sandbox Code Playgroud)

但这只能突出显示每个字符串中的所有SQL关键字.即使是一个正常的句子这一个.

有没有办法只为以"选择","更新"或"删除"开头的字符串启用此功能?

php sql vim vim-syntax-highlighting

7
推荐指数
1
解决办法
1092
查看次数