标签: fosuserbundle

双击确认链接时进入fosuserbundle的错误?

我刚开始使用fosuserbundle,今天我激活确认注册链接.它工作得很好,但如果用户第二次点击电子邮件中的确认链接,他会收到该错误:

具有确认令牌"3hiqollkisg0s4ck4w8g0gw4soc0wwoo8ko084o4ww4sss8o4"的用户不存在404 Not Found - NotFoundHttpException

我认为这个错误应该由捆绑处理,不是吗?

谢谢

fosuserbundle symfony-2.2

6
推荐指数
1
解决办法
1849
查看次数

Symfony2 FOSUserBundle - 在登录时验证"用户活动"标志

我的用户标记为'active',如果设置为零或null,我将不允许登录.

我已经尝试了几种方法并且做得很短.

如果我执行注销路由,则不会保留Flash消息,因此用户什么也看不到.

我考虑在登录表单上添加验证,以便在标志未设置为true时抛出正常的表单错误,但在该文件夹(vendor/Bundles/FOS/UserBundle/Form/Type)中我找不到任何登录信息形式,只有注册等,所以我不知道在哪里放或继承从哪里来覆盖.

我也按照这里的建议尝试手动注销,但这给我留下了死亡的白屏......

有什么建议如何轻松完成这个?

************** UPDATE ************

我意识到我可能想在登录表单上添加验证器.我目前已将其编码到用户被发送到的第一条路线的控制器中,但如果用户在登录前键入路线,则不会提供太多安全性,因为在成功登录尝试后,我的默认"登陆页面"之后登录将不是用户被带到的路线,但他将登陆他选择的路线...

***再次更新****

所以服务配置文件有这个......

    <service id="security.user_checker" class="%security.user_checker.class%" public="false" />
Run Code Online (Sandbox Code Playgroud)

这个参数在这里定义......

    <parameter key="security.user_checker.class">Symfony\Component\Security\Core\User\UserChecker</parameter>
Run Code Online (Sandbox Code Playgroud)

所以为了修改我需要覆盖的登录逻辑

Symfony\Component\Security\Core\User\UserChecker
Run Code Online (Sandbox Code Playgroud)

现在我通过覆盖symfony app/config中我自己的parameters.ini上面的参数来完成这个

security.user_checker.class  = BizTV\UserBundle\Controller\UserChecker
Run Code Online (Sandbox Code Playgroud)

..并将此检查添加到我的userChecker overrider ...

    //Test for companylock...
    if ( !$user->getCompany()->getActive() ) {
        throw new LockedException('The company of this user is locked.', $user);
    }
Run Code Online (Sandbox Code Playgroud)

这是整个文件:

<?php

/*
 * This file is part of the Symfony package.
 * …
Run Code Online (Sandbox Code Playgroud)

forms flash logout symfony fosuserbundle

6
推荐指数
1
解决办法
5763
查看次数

我自己的登录表单上的CSRF令牌无效

我正在使用FOSUserBundle处理symfony应用程序.如果我没有经过身份验证,我希望在菜单栏中有一个下拉登录表单,它具有与/ login下的完全不同的样式.

我收到'无效的CSRF令牌'.我是symfony2的完全新手,所以也许我犯了一个明显的错误,但我找不到谷歌搜索的解决方案.这是我试过的:

控制器:

<?php

namespace RoiRodriguez\CustomUserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\SecurityContext;

class DefaultController extends Controller {

    /**
     * Para requests internos, renderiza la barra de navegación.
     * No tiene ruta.
     */
    public function navigationAction() {
        $params = array (
                'csrf_token' => '',
                'last_username' => '' 
        );

        if ($this->container->get ( 'security.context' )->isGranted ( 'IS_AUTHENTICATED_FULLY' )) {
            $session = $this->getRequest ()->getSession ();
            $params ['last_username'] = (null === $session) ? '' : $session->get ( SecurityContext::LAST_USERNAME );
            $params ['csrf_token'] = $this->container->get ( …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

6
推荐指数
3
解决办法
2万
查看次数

FOSUserBundle重置电子邮件HTML模板不起作用

我正在尝试为用户请求密码时发送的电子邮件定义我自己的模板,但在添加HTML部分时它不起作用.

这是模板:

{% trans_default_domain 'FOSUserBundle' %}
{% block subject %}
{% autoescape false %}
{{ 'resetting.email.subject'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }}
{% endautoescape %}
{% endblock %}
{% block body_text %}
{% autoescape false %}
{{ 'resetting.email.message'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }}
{% endautoescape %}
{% endblock %}
{% block body_html %}
{% autoescape false %}
<div dir="ltr" style="display: block; width: 100%; background: #ffffff">
    <table style='width: 100%; border: none'>
        <tr style='height: 20px; background-color: #5A82FF'>
            <td></td>
        </tr>
        <tr>
            <td style="padding: 30px 0; font-family: …
Run Code Online (Sandbox Code Playgroud)

fosuserbundle symfony-2.3

6
推荐指数
1
解决办法
4023
查看次数

Symfony2 - 块类型sonata.user.block.menu不存在

我有一个例外:

An exception has been thrown during the rendering of a template ("The block type 
sonata.user.block.menu does not exist") in SonataUserBundle:Profile:action.html.twig at 
line 27. 
Run Code Online (Sandbox Code Playgroud)

我已经安装了一个FOSUserBundle + SonataAdminBundle,我的理解,我需要tu安装SonataBlockBundle和其他必需的捆绑包.

我的内核文件:

        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
        new Symfony\Bundle\TwigBundle\TwigBundle(),
        new Symfony\Bundle\MonologBundle\MonologBundle(),
        new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
        new Symfony\Bundle\AsseticBundle\AsseticBundle(),
        new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
        new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
        new Ibw\JobeetBundle\IbwJobeetBundle(),
        new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
        new Sonata\CoreBundle\SonataCoreBundle(), 
        new FM\BbcodeBundle\FMBbcodeBundle(),
        new FOS\UserBundle\FOSUserBundle(),
        new Sonata\jQueryBundle\SonatajQueryBundle(),
        new Sonata\AdminBundle\SonataAdminBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),
        new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(),
        new Application\Sonata\UserBundle\ApplicationSonataUserBundle(),   
Run Code Online (Sandbox Code Playgroud)

Adn my composer.json

    "php": ">=5.3.3",
    "symfony/symfony": "~2.4",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle composer-php sonata-admin sonata-user-bundle

6
推荐指数
1
解决办法
8619
查看次数

Symfony2:如何通过IP地址限制/拒绝访问某些路由?

我想禁止访问/login,/register如果客户的IP地址被禁止.

被禁止的IP的(黑色)列表存储在数据库中.

我怎么解决这个问题?

access-control symfony fosuserbundle

6
推荐指数
1
解决办法
2787
查看次数

Symfony 2 FOSUserBundle,具有休息登录和注册功能

我经历了很多stackoveflow问题和文章,但找不到合适的答案.

我正在使用fosuserbundle,hwiouthbundle和lexikjwt bundle.

我正在开发一个基于symfony的api,它将由Android应用程序和角度应用程序使用.

现在我需要注册和登录系统fosuserbundle facebook登录hwiouthbundle和api保护lexikjwt捆绑.

我已经实现了fosuserbundle和hwiouthbundke,两者都没有编写用户控制器.但我需要休息而不是形式.但我无法输入:在路由器中休息.

现在我如何登录,用fosuserbundle注册用户休息?我不想使用fosouth服务器.只需要注册和登录api而不是从网上休息.

symfony fosuserbundle lexikjwtauthbundle

6
推荐指数
1
解决办法
8569
查看次数

同时使用HWIOAuthBundle和LexikJWT

正如标题所示,我将使用Facebook,Google和GitHub身份验证以及JWT身份验证器(LexikJWT).

在开始之前,我想知道如何使用它们?是否可以使用它们来保护API?

如果是,我的安全性应该具有哪种配置?假设我正在使用默认配置.

这是当前的security.yml:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    acl:
        connection: default

    access_decision_manager:
        strategy: affirmative

    role_hierarchy:
        ROLE_SALES_NOTIFICATIONS: [ ROLE_SALES_NOTIFICATIONS ]
        # FULL CONTROL
        ROLE_ADMIN:       [ROLE_USER, ROLE_SONATA_ADMIN]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email

    firewalls:
        # Disabling the security for the web debug toolbar, the profiler and Assetic.
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # -> custom firewall for the admin area of the URL
        admin:
            pattern:            /admin(.*)
            context:            user
            form_login:
                provider:       fos_userbundle
                login_path:     /admin/login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   null …
Run Code Online (Sandbox Code Playgroud)

symfony oauth-2.0 fosuserbundle hwioauthbundle lexikjwtauthbundle

6
推荐指数
1
解决办法
357
查看次数

Symfony2 - FOSUserBundle - 多个登录位置

我正在使用FOSUserBundle,我需要能够从2个不同的路由(或更多)登录.这些路线将具有不同的模板,并且还会登录到不同的区域.登录之间唯一不同的是所需的权限.路线将是符合的路线

site.com/login

site.com/admin/login

还有可能是site.com/ajax_login

我已经能够通过从FOSUserBundle login.html.twig(被覆盖)中删除除CSRF令牌之外的所有内容,然后创建呈现自己的登录框和登录路径的路由,来研究如何获取不同的模板. (这样只会渲染CSRF令牌).这不适用于admin/login,因为表单会回发登录,如果失败则会显示该页面.

有没有简单的方法来实现这一目标?

php symfony fosuserbundle

5
推荐指数
1
解决办法
4359
查看次数

FOSUserBundle压倒不连贯

我遇到了关于FOSU​​serBundle最重要的可能性的无数问题,并且在使用Twig的继承机制时发现了一些"设计不连贯",我想澄清一下,因为它在某些项目中真的令人不安......

覆盖FOSUserBundle中的模板

从我读过的内容来看,我们应该如何覆盖模板.比方说,登录模板(Security/login.html.twig).首先,我需要覆盖全局FOSUser布局(layout.html.twig').

全球FOSUser布局

{% extends "::layout.html.twig" %}
{% block title %}Page title{% endblock title %}
{% block body %}
    <div id="container">
       {% block fos_user_content %}{% endblock %}
    </div>
{% endblock body %}
Run Code Online (Sandbox Code Playgroud)

titlebody块到HTML引用<title><body>标签(全球).现在,谈到登录本身,这就是我写的内容.

登录表格

{% extends "MyUserBundle::layout.html.twig" %}

{% block fos_user_content %}
    {% if error %}
        <div class="error">{{ error|trans({}, 'FOSUserBundle') }}</div>
    {% endif %}
    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
        <label …
Run Code Online (Sandbox Code Playgroud)

php forms overriding symfony fosuserbundle

5
推荐指数
1
解决办法
899
查看次数