Zf2 ScnSocialAuth HybridAuth zfcuser和Routes

时间:2015-07-07 06:46:26

标签: zend-framework2 zfcuser

使用ZF2基于ZfcUser自定义实体。试图使用ScnSocialAuth并遇到一些问题。 问题是我使用自定义路由('/ account'而不是'/ user')并且在实现ScnSocialAuth时我无法将社交代码放入我的自定义zfcuser视图中......? 我有\\ view \ zfc-user \ user \ _ register.php,它会覆盖zfcuser注册。 我有一个定制的路线:

'account' => array(
                'type' => 'Zend\Mvc\Router\Http\Literal',
                'options' => array(
                        'route' => '/account',
                ),
        ),

这些是我在\ my-module \ config \ module.config.php

中的zfc配置修改
    'zfcuser' => array(
        // telling ZfcUser to use our own class
        'user_entity_class'       => 'WMember\Entity\WMember',
        // telling ZfcUserDoctrineORM to skip the entities it defines
        'enable_default_entities' => false,
        'table_name' => 'w_member',
        'login_redirect_route' => 'account',
),

我的全局\ config \ application.config.php

'ScnSocialAuth',
'MyModule1',
'ZfcBase',
'ZfcUser',
'BjyAuthorize',
'GoalioMailService',
'GoalioForgotPassword',
'my-user-module',

因此,毕竟:

  1. 我可以通过导航到我自己的扩展用户注册表单 / account / register没有可见的社交登录链接
  2. 导航到/ user / register
  3. 时,我可以看到ScnSocialAuth

    a)我无法在我的模块中创建视图以覆盖\ vendor \ scn-social-auth \ user \ register.phtml,就像使用zfcuser一样

    请帮助让ScnSocialAuth与我的自定义路由设置一起使用。 如果这是错的,请告诉我,因为我不是ZF2专家。很高兴接受“建设性”的批评。

    看到这些帖子:How to (correctly) extend ScnSocialAuth\Authentication\Adapter\HybridAuth::authenticate() method? 这是上述帖子的结果: https://github.com/SocalNick/ScnSocialAuth/issues/202

    注意:由于PHP 5.3,5.4仍在运行ZF-2.3 *

1 个答案:

答案 0 :(得分:0)

您需要覆盖zfcuser路线

,而不是在配置中添加自定义路线
<?php
// @file MyUserModule/config/module.config.php
return array(
    // other config ...

    'router' => array(
         'routes' => array(
            'zfcuser' => array(
                'options' => array(
                    // this is the only change needed to route zfcuser to /account
                    'route' => '/account',
                ),
            ),
         ),
     ),

     // more config ...
);

ScnSocialAuth模块使用forward()插件从zfcusers注册视图(和登录视图iirc)呈现内容,这意味着它只会查看zfcuser路由并完全忽略您的自定义路由。让它使用您的自定义路线的唯一方法是使用相同的代码替换ScnSocialAuths UserController,但转发到您的自定义路线(在那里做更多的工作,仍有可能打破任何其他需要zfcuser的东西是使用的路线)