标签: fosuserbundle

LexikJWTAuthenticationBundle 在匿名路由上返回 401 无效令牌

我将此 LexikJWTAuthenticationBundle 与 FosUserBundle 一起使用。

我在 security.yml 中有这个:

firewalls:
    app:
        pattern: ^/api
        stateless: true
        anonymous: true
        lexik_jwt: ~
Run Code Online (Sandbox Code Playgroud)

具有以下 access_control :

- { path: ^/api/user/action1, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/api/user/action2, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

我期望 /api/user/action2 的行为是无论请求标头内有什么内容都可以访问。但是,在设置了授权承载但无效的情况下,我收到 401(使用有效令牌或根本没有授权承载都可以)。

我的用例是我需要检查我的控制器是否用户已登录,但如果没有,我仍然想让该匿名用户访问该路由。

symfony jwt fosuserbundle

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

FOSUserBundle - 您必须在安全防火墙配置中激活注销

我正在使用 Symfony 2.8.2 和 FOSUserBundle。当我尝试注销时,出现以下错误:

您必须在安全防火墙配置中激活注销

这是我的 security.yml

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/login
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
            anonymous: true
            logout:
                path: /logout
                target: /login

    access_control:
        - { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/, role: ROLE_USER } …
Run Code Online (Sandbox Code Playgroud)

security firewall logout symfony fosuserbundle

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

了解 Symfony/FOSUserBundle 身份验证 - 如何处理 fos_user_security_check

我试图了解Symfony 2.8使用FOSUserBundle. 设置没有问题,一切正常,我只是想了解它是如何工作的。

登录表单将用户名+密码发送到定义在以下路径中的fos_user_security_check路由( ) :/login_checkFOSUserBunde\Resources\config\routing\security.xml

<route id="fos_user_security_check" path="/login_check" methods="POST">
    <default key="_controller">FOSUserBundle:Security:check</default>
</route>
Run Code Online (Sandbox Code Playgroud)

所以FOSUserBundle:Security:checkaction负责处理请求。然而,实现看起来像这样:

public function checkAction() {
    throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.');
}
Run Code Online (Sandbox Code Playgroud)

所以我查看了防火墙配置/app/config/security.yml

security:
    ...
    firewalls:
        ...
        main:
            ...

            form_login:
                provider: fos_userbundle
                csrf_provider: security.csrf.token_manager
                login_path: fos_user_security_login
                check_path: fos_user_security_check
Run Code Online (Sandbox Code Playgroud)

这里check_path也指fos_user_security_check... 那么,认证实际上是在哪里处理的呢?

authentication symfony fosuserbundle

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

无法解析 symfony 4.3 中覆盖 FOS 控制器上的参数 $token

首先,我尝试了与该主题相关的所有问题和答案。此外,我尝试了相关问题并尝试解决它,但没有成功。所以请仔细阅读我的问题。

我想覆盖 FOS 控制器。我成功重定向但没有得到完美的 /register/confirm/{token} 工作。我收到令牌错误。

出现错误: 无法解析“App\Controller\RegistrationController::confirmaction()”的参数 $token,也许您忘记将控制器注册为服务或错过使用“controller.service_arguments”对其进行标记?

在此输入图像描述

我的代码

注册控制器.php

<?php

/*
 * This file is part of the FOSUserBundle package.
 *
 * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace App\Controller;

use FOS\UserBundle\Event\FilterUserResponseEvent;
use FOS\UserBundle\Event\FormEvent;
use FOS\UserBundle\Event\GetResponseUserEvent;
use FOS\UserBundle\Form\Factory\FactoryInterface;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Model\UserManagerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route; …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle symfony4

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

如何在表单构建器中添加标签(不在树枝中)?

我有这个代码,但它不起作用:

$builder->add('name','text',array(
    'label'  => 'Due Date',
));
Run Code Online (Sandbox Code Playgroud)

我在fosuserbundle中遇到的问题,我有覆盖形式

<?php
namespace Acme\UserBundle\Form\Type;

use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;

class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilder $builder, array $options)
    {


        // add your custom field
        $builder->add('name','text',array(
    'label'  => 'Due Date',
));
        parent::buildForm($builder, $options);
    }

    public function getName()
    {
        return 'acme_user_registration';
    }
}
Run Code Online (Sandbox Code Playgroud)

但没有工作,没有给我任何错误,并设置标签"fos_user_registration_form_name"

forms symfony fosuserbundle

4
推荐指数
1
解决办法
5609
查看次数

FOS用户捆绑认证

FOS用户包如何通过此服务容器对用户进行身份验证?

$this->container->get('security.context')->getToken()->getUser();
Run Code Online (Sandbox Code Playgroud)

我想操纵身份验证过程.我应该在哪里查看?

php authentication symfony fosuserbundle

4
推荐指数
1
解决办法
5012
查看次数

更改FOSUserBundle(Symfony)中的默认登录页面

我认为这里的问题和答案都不应该非常复杂.

我已经安装并配置了FOSUserBundle以在Symfony2的项目中使用.

我需要知道的是,我告诉安全性,当用户尝试访问禁用的URL时,它必须重定向哪个页面.

默认情况下是/ login.但是我想把它变成一般的/主要的.

提前致谢

php security symfony fosuserbundle

4
推荐指数
1
解决办法
5078
查看次数

在sonata admin的编辑形式中为用户设置角色

我正在使用Symfony 2.1进行项目.我使用FOSUserBundle管理用户和SonataAdminBundle管理用法.

我有一些问题:

  1. 作为管理员,我想在用户编辑表单中设置用户角色.我如何才能访问角色role_hierarchy?我如何将它们用作选择字段,以便管理员可以为用户设置角色?

  2. 当我在列表中显示角色时,它显示为如下字符串:

    [0 => ROLE_SUPER_ADMIN] [1 => ROLE_USER] 
    
    Run Code Online (Sandbox Code Playgroud)

    我该如何改变它呢?

    ROLE_SUPER_ADMIN, ROLE_USER 
    
    Run Code Online (Sandbox Code Playgroud)

    我的意思是,只有数组的值.

user-roles symfony fosuserbundle symfony-2.1 sonata-admin

4
推荐指数
2
解决办法
8005
查看次数

未定义的方法registerNamespaces()symfony2

我正在关注此FOSTwitterBundle文档:https: //github.com/FriendsOfSymfony/FOSTwitterBundle

我一步一步地完成了所有操作,但是当我访问我的网站时,我收到此错误:

 Fatal error: Call to undefined method Composer\Autoload\ClassLoader::registerNamespaces() in C:\xampp\htdocs\Symfony\app\autoload.php on line 16
Run Code Online (Sandbox Code Playgroud)

我的autoload.php是这样的:

<?php

use Doctrine\Common\Annotations\AnnotationRegistry;

$loader = require __DIR__.'/../vendor/autoload.php';

// intl
if (!function_exists('intl_get_error_code')) {
    require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';

    $loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

$loader->registerNamespaces(array(
        // ...
        'FOS'    => __DIR__.'/../vendor/bundles',
        // ...
  ));

return $loader;
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

symfony fosuserbundle symfony-2.1

4
推荐指数
2
解决办法
5802
查看次数

FOSUserBundle模板替代不适用于Symfony Flex

我对Symfony Flex和FOSUserBundle有问题。我无法覆盖默认的FOSUserBundle模板。我尝试按照Symfony文档,教程进行所有操作,但没有任何效果。就像Twig不会使用我的layout.html.twig而不是默认的FOSUserBundle一样进行渲染。

模板目录树看起来应该遵循新的Symfony Flex结构:

- templates
   - default
   - FOSUserBundle
      - views
         - layout.html.twig
   - base.html.twig
Run Code Online (Sandbox Code Playgroud)

也许有人遇到过Symfony Flex类似的问题。

php symfony fosuserbundle

4
推荐指数
1
解决办法
2006
查看次数