在我的平台上,管理员创建了一个随机生成密码的用户,这会自动向这个新用户发送一封电子邮件。该电子邮件包含一个指向重置密码页面的链接(这将是用户的密码创建页面,因为他不知道他已经生成了密码)。
问题是当用户单击电子邮件链接并到达更改密码页面时,他以管理员身份登录,因此拥有他不应该拥有的权限。
事实上,我希望电子邮件链接将新用户连接到他的账户,我不希望他以管理员身份登录。我不知道该怎么做。
我对令牌了解不多。我相信令牌是根据使用的会话生成的(?)。
预先感谢您的帮助。
这是创建用户的代码:
/**
     * @Route("/new", name="user_new", methods={"GET", "POST"})
     * @throws TransportExceptionInterface
     */
    public function new(Request $request, MailSender $mailSender,UserPasswordHasherInterface $passwordHasher): Response
    {
        // TODO CHECK IF USER ALREADY EXISTS BY EMAIL
        $user = new User();
        $form = $this
            ->createForm(UserType::class, $user)
            ->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            // TODO GENERATE RANDOM PASSWORD
            //$passwordHasher->hashPassword($user, $user->getPassword()));
            $user->setPassword($passwordHasher->hashPassword($user, "password"));
            $this->entityManager->persist($user);
            $this->entityManager->flush();
            try {
                $resetToken = $mailSender->makeToken($user);
            } catch (ResetPasswordExceptionInterface $e) {
                return $this->redirectToRoute('user_new');
            }
            $mailInfos = array('template'=>"reset_password/email_activate.html.twig", 'subject'=>"Activer votre compte", 'email'=>$user->getEmail());
            $mailSender->sendMail($resetToken, $mailInfos);
            $mailSender->storeToken($resetToken);
            return $this->redirectToRoute('user_index', [], Response::HTTP_SEE_OTHER);
        }
        return $this->renderForm('user/new.html.twig', [
            'user' => $user,
            'form' => $form,
        ]);
    }
uj5u.com热心网友回复:
这是预期的行为,因为:
意味着默认情况下,您不能在不同的选项卡中使用不同的用户登录。
而且我不认为你会想要这个,只是想想缺点,你真的想为每个标签重新登录吗?这是非常不常见的做法。想象一下,您将在新选项卡中打开一个堆栈溢位问题,而您不会在那里登录。
虽然有一些方法可以实作这一点,但如果那是您的实际用例,我不这幺认为,您只是在开发您的功能并对其进行测验,并且在生产中,新用户不会已经以管理员身份登录是我的假设。
因此,为了测验您的功能,只需使用私有选项卡(通常不共享相同的服务器端会话)
如果您想了解更多信息,我发现这个非常酷的执行绪,用户试图尽可能地解释 什么是会话?它们是如何作业的?

 
							 
										
										 
										
										 
										
										
										 
										
										 
										
										 
										
										 
										
										
0 评论