首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony不保存手动登录

Symfony不保存手动登录
EN

Stack Overflow用户
提问于 2016-06-04 12:07:39
回答 1查看 981关注 0票数 0

我已经创建了一个手动的代码登录方法。页面上的函数可以工作。

分析人员说我的身份是正确的。

但是Symfony没有保存会话/登录正确。如果我访问的页面仅用于ROLE_USER,我将得到Full authentication is required to access this resource.消息,并且没有保存上一次登录中的用户(Symfony使用匿名令牌)。

在这里,我的登录操作:

代码语言:javascript
复制
namespace ###HIDDEN###\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\User\User;

class AutoLoginController extends Controller
{
    /**
     * @Route("/auto-login")
     */
    public function indexAction(Request $request)
    {
        if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {

            $user = new User("Marcel", null, array('ROLE_USER'));

            $token = new UsernamePasswordToken($user, null, "main", $user->getRoles());

            $this->get("security.token_storage")->setToken($token);

            $event = new InteractiveLoginEvent($request, $token);
            $this->get("event_dispatcher")->dispatch("security.interactive_login", $event);

            return new Response("<body>Logging in!</body>");
        }

        return new Response("<body>You already logged in!</body>");
    }
}

我正在使用Symfony2.8LTS版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-04 13:25:03

确保您的User类实现了UserInterface (文档)。

它必须返回用户所具有的角色,无论是静态的还是从持久存储(如数据库)设置的。

还记得检查Web以查看身份验证细节,以及授予当前经过身份验证的用户的角色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37630051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档