有人可以解释一下如何在控制器中手动创建记住我的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) 我知道可以使用该选项在PHP脚本中启用SQL语法突出显示
let php_sql_query=1
Run Code Online (Sandbox Code Playgroud)
但这只能突出显示每个字符串中的所有SQL关键字.即使是在一个正常的句子像这一个.
有没有办法只为以"选择","更新"或"删除"开头的字符串启用此功能?