标签: fosuserbundle

Symfony 2以表单形式获取用户区域设置

我使用FOSUser包并重写注册表单,我使用实体类型选择国家,地区等.这个实体与用户区域设置有关系,我想为每个区域设置编写DQL.如何在不重写FOSUser:registerAction的情况下获取表单中的用户区域设置?

symfony fosuserbundle

2
推荐指数
1
解决办法
5975
查看次数

Symfony2:如何生成密码的sha512哈希值?

我需要比较用户输入的密码是否有效.我如何获得sha512加密.我也在我的项目中使用FOSUserBundle.

php hash sha512 symfony fosuserbundle

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

FOSFacebookBundle打破了FOSUserBundle的"记住我"

问题:

我们一直在使用FOSUserBundle for Symfony2,一切正常,包括"记住我".

我们最近推出了FOSFacebookBundle.从那以后,"记住我"的"正常"登录被打破了.

例如:

当我们只使用FosUSer如果用户通过登录形式登录,并保持,对于为例5小时没有活动,点击任何链接都继续工作,与logined和标识的用户之后.

当我们激活FosFacebook时,同一个用户也通过登录表单(而不是来自Facebook)登录并保持没有活动的时间.单击任何链接后,他将被重定向到登录表单,再次输入密码后,会再次重定向到目标URL.

如果我们从配置中停用FosFacebook,FosUser的"记住我"将再次正常工作.

题:

FosFacebook打破FosUser"自然"是否正常,请记住我没有使用FB的用户?

如果应该正常工作......任何人都可以看到我们的配置文件中是否有错误?

配置文件:

config.yml

# FOS User
fos_user:
    db_driver: %database_method% # other valid values are 'mongodb', 'couchdb'
    firewall_name: main
    user_class: Common\ODMBundle\Document\User
    from_email:
        address:        %fos_email_address%
        sender_name:    %fos_sender_name%
    profile:
        form:
            type:               fos_user_profile
            handler:            fos_user.profile.form.handler.default
            name:               fos_user_profile_form
            validation_groups:  [Profile]
    change_password:
        form:
            type:               fos_user_change_password
            handler:            fos_user.change_password.form.handler.default
            name:               fos_user_change_password_form
            validation_groups:  [ChangePassword]
    registration:
        confirmation:
            enabled:    true
            template:   FOSUserBundle:Registration:email.txt.twig
        form:
            type:               fos_user_registration
            handler:            fos_user.registration.form.handler.default
            name:               fos_user_registration_form
            validation_groups:  [Registration]
    resetting:
        token_ttl: 600
        email:
            template:   FOSUserBundle:Resetting:email.txt.twig
        form:
            type:               fos_user_resetting …
Run Code Online (Sandbox Code Playgroud)

facebook login symfony fosuserbundle fosfacebookbundle

2
推荐指数
1
解决办法
819
查看次数

Symfony2在ajax请求后重定向

我正在使用Symfony2构建一个包含用户帐户的站点,我有一个部分,其中用户有一个项目列表,所有这些都可以在单击时进行编辑.

目前,当用户点击要编辑的项目时,将会有一个ajax请求来提取与该项目相关的所有信息,并构建一个表单,然后该表单将被放置在当前页面内.

现在这是我的问题,比如一个用户在他们的项目页面上,并且他们清除了他们的浏览器缓存(并且已经注销),当他们点击要编辑的项目时,我已经设置好所以什么都不会发生,但是如果他们在此之后立即尝试登录(使用标准的website.com/login页面),它们将被重定向到之前尝试加载的表单.(此页面只包含一个表单,仅此而已,可能会使用户感到困惑).

我已经在登录到用户个人资料页面后设置Symfony2进行重定向,但仍然会在登录后从ajax请求重定向到表单.

我只是希望在任何情况下登录后都可以将用户重定向到他们的个人资料页面.

ajax redirect symfony fosuserbundle

2
推荐指数
1
解决办法
1525
查看次数

覆盖FOSUserBundle控制器

所以我读了很多关于模板的重写,以及Symfony中的包的重写.

我正在使用新的Symfony 2.3,我没有在较低版本的Symfony中尝试过这个.

我按照教程中关于覆盖Symfony中的bundle:http: //symfony.com/doc/2.3/cookbook/bundles/inheritance.html

我按照关于覆盖FOSUserBundle控制器的教程,这是真的一样:https: //github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_controllers.md

我有一个名为Acme/WebBundle的软件包.

现在我做了以下事情:

  • 创建了一个名为Acme/UserBundle的新包.
  • 在此捆绑包中创建了文件AcmeUserBundle.php.

    <?php
    
    namespace Acme\UserBundle;
    
    use Symfony\Component\HttpKernel\Bundle\Bundle;
    
    class AcmeUserBundle extends Bundle
    {
        public function getParent()
        {
            return 'FOSUserBundle';
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 创建了以下文件结构:

    -src
        -Acme
            -UserBundle
                -Controller
                    RegistrationController.php
                -Entity
                    User.php
                -Resources
                    -translations
                    -views
                AcmeUserBundle.php
    
    Run Code Online (Sandbox Code Playgroud)
  • 在RegistrationController.php中,我将命名空间设置为:

    namespace Acme\UserBundle\Controller;
    
    Run Code Online (Sandbox Code Playgroud)
  • 将FOSUserBundle的注册控制器的内容复制到我的.

  • 添加到registerAction()的开头

    die("message");
    
    Run Code Online (Sandbox Code Playgroud)

现在,当我去注册表格,默认/注册路线,我没有死,一切正常.它没有看到我的小孩作为一个孩子,没有被覆盖,我一直试图让它工作多年,因此我的问题在这里.

我做错什么了吗?

symfony fosuserbundle symfony-2.3

2
推荐指数
1
解决办法
3805
查看次数

注册后发送包含登录和通过的电子邮件

我目前正在开发一个用于管理用户的Symfony2项目我安装了FosUserBundle软件包,该软件包功能正常,但我找不到如何在创建用户后立即发送包含用户名和密码的电子邮件,因为我说我有两个用户:admin和user类型,管理员将创建具有FOS注册形式的创建形式的用户,在两种用户之间切换只是角色.

symfony fosuserbundle

2
推荐指数
1
解决办法
7988
查看次数

使用FOSUserBundle自动登录Symfony2

我在我的Symfony2应用程序中创建了一个单独的注册机制(使用FOSUserBundle),除了常规注册之外,它还存在.

有没有办法 - 在我创建并持久化用户到数据库之后 - 自动登录当前用户.之后,用户将被重定向到需要登录用户的页面(由于自动登录,用户可以访问该页面)?

这基本上是我创建用户的方法:

public function signupAction(Request $request) {
    $user = new User();

    $form = $this->createFormBuilder($user)
                ->...()
                ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        // Enable User
        $user->setEnabled(true);

        // Persist to DB
        $em->persist($user);
        $em->flush();

        // Here I need the auto-login before redirecting to _root

        return $this->redirect($this->generateUrl('_root'));
    }

    return $this->render('MyBundle:MyController:signup.html.twig', array(
        'form' => $form->createView()
    ));
}
Run Code Online (Sandbox Code Playgroud)

authentication authorization symfony fosuserbundle

2
推荐指数
1
解决办法
3878
查看次数

显然找不到Symfony2.5 + FOSUserBundle检查路径

我开始使用新的Symfony应用程序,我使用FOSUserBundle.我安装它,加载捆绑并配置它.这是我的configuration.yml:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Myapp\UserBundle\Entity\User
Run Code Online (Sandbox Code Playgroud)

和我的security.yml:

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
        in_memory:
            memory: ~

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        default:
            anonymous: ~

        main:
            pattern: ^/
            form_login:
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                default_target_path: /
            logout:       true
            anonymous:    true

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

symfony fosuserbundle

2
推荐指数
1
解决办法
4344
查看次数

当提供令牌时,Symfony2 OAuth会不断给我一个登录页面

我已经设置了一个应用程序:

  • FriendsOfSymfony/FOSUserBundle
  • FriendsOfSymfony/FOSOAuthServerBundle
  • FriendsOfSymfony/FOSRestBundle

我已经成功创建了一个客户端,并且可以使用这样的URL获取访问令牌

http://api.mydomain.com/oauth/v2/token?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=password&username=mikebates&password=secret

但是,当我尝试访问这样的网址时,请访问 http://api.mydomain.com/api/surgeries/45/details?access_token=ACCESS_TOKEN

我被重定向到symfony登录页面,但我不能拥有它,或者我构建的移动应用程序使用此REST API将无法访问.

我使用本教程进行设置(删除那里的User/UserRepository类并将其改为与FOSUserBundle一起使用)http://blog.tankist.de/blog/2013/07/16/oauth2-explained-part-1原理-和-术语/

我不确定我告诉symfony重定向到登录页面的位置,我想将该逻辑更改为仅从令牌进行身份验证.

这是我的设置概述

security.yml

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username  

    firewalls:
        ...

        login:
            pattern:  ^/secured/login$
            security: false

        oauth_token:
            pattern:    ^/oauth/v2/token
            security:   false

        oauth_authorize:
            pattern:    ^/oauth/v2/auth
            form_login:
                provider: fos_userbundle
                check_path: _security_check
                login_path: _demo_login
            anonymous: true

        api:
            pattern:    ^/api
            fos_oauth:  true
            stateless:  true
            anonymous:  false # can be omitted as its default value

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle fosrestbundle fosoauthserverbundle

2
推荐指数
1
解决办法
2960
查看次数

从用户FosuserBundle Symfony获取角色和last_login

我想在我的布局中获得角色的名称和last_login的日期.

我使用Symfony 2.5和FosuserBundle

所以,当我使用:

{{ app.user.username }}
Run Code Online (Sandbox Code Playgroud)

我得到用户名,但当我使用时:

{{ app.user.roles }}
Run Code Online (Sandbox Code Playgroud)

我得到数组这是很正常的,因为它是数组.

  <div class="floatleft marginleft10">
                    <ul class="inline-ul floatleft">
                        <li>Espace {{ app.user.username }}</li>

                        <li><a href="{{ path('fos_user_security_logout') }}">Logout</a></li>
                    </ul>
                    <br />               
                    <span class="small grey">Last Login: {{ app.user.last_login }}</span>
                </div>
Run Code Online (Sandbox Code Playgroud)

当我添加{{app.user.last_login}}时,我得到了异常:

       Method "last_login" for object "My\testBundle\Entity\Collaborateur" does not exist in MytestBundle::layout2.html.twig 
Run Code Online (Sandbox Code Playgroud)

任何帮助请!!

symfony fosuserbundle

2
推荐指数
1
解决办法
3371
查看次数