Проблема: новый пользователь не создается при успешной аутентификации с помощью учетной записи Facebook. ПРИМЕЧАНИЕ. У меня установлена чистая система от https://github.com/SocalNick/ScnSocialAuth [zip file download] и скорректирована идентификатор и пароль Facebook с панели инструментов Facebook Developer, и она успешно прошла проверку подлинности и создала нового пользователя в моей таблице пользователя и ссылке в таблице user_provider. Это проблема, из-за которой я вытягиваю свои волосы, так как она отлично работает здесь, но не в моем индивидуальном приложении. Должно быть простым в сравнении, но это не так ...)ZF2 ZfcUser ScnSocialAuth регистрация + аутентификация Facebook
Моя установка ZF2 включает в себя приложение Skeleton, ZF 2.3x, ZfcUser, BjyAuthorise, ScnSocialAuth, Goalio (Mailservice and Password), Webino и мои пользовательские модули.
Моего модуль член перекрывает стандартные настройки ZfcUser как так:
'zfcuser' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/account',
),
),
'scn-social-auth-user' => array(
'type' => 'Literal',
'options' => array(
'route' => '/account',
'defaults' => array(
'controller' => 'zfcuser',
'action' => 'index',
),
),
),
'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',
),
Наряду с некоторыми формами настроек в @/модуле/module.php для настройки ZFCForm
$sharedEvents->attach('ZfcUser\Form\Register',
'init',
function($e)
{
/* @var $form \ZfcUser\Form\Register */
$form = $e->getTarget();
Я успешно перезаписал представления, включив ScnSocialAuth и Zfcregistration. (вопросы, обсуждаемые здесь: SFdot ком/вопросы/31261580/ZF2-scnsocialauth-hybridauth-zfcuser-и-маршруты)
Проблема в том, что, когда я нажимаю на 'Facebook' под 'социальной регистрации'/счета/регистр я правильно попадаю в Facebook для входа в систему. (FB/login.php? Skip_api_login = 1 & api_key = ...) Я вхожу в систему и возвращаюсь в свое приложение. Выполняет несколько переходов, и я возвращаюсь обратно в/account/login # = «Несколько прыжков» Я говорю о том, что я вижу в инструментах Dev в хром-сети. (не могу отправить изображение из-за Rep < 10 ...) - facebook.com/ajax/bz - facebook.com/login.php?login_attempt=1 & next = 3A% 2F% 2Fwww.facebook.com % 2Fv2.0% 2Fdialog% 2Foauth% 3Fredirect_uri% 253A% 252F% 252Fmain.localtest.me% 252Fscn-social-auth% 252Fhauth% 253Fhauth.done% 25 - facebook.com/v2.0/dialog/oauth?redirect_uri = 3A% 2F% 2Fmain.localtest.me% 2Fscn-social-auth% 2Fhauth% 3Fhauth.done% - main.localtest.me/scn-social-auth/hauth?hauth.done=Facebook & code = AQC2MLK84QXAq0XW5gAgtWevuNAMSU- ...
Отладка (извлечение) из файла журнала ScnSocial приведена ниже:
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth::initialize(). PHP version: 5.4.27
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth::initialize(). Hybrid_Auth version: 2.4.1
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth::initialize(). Hybrid_Auth called from: main.localtest.me/scn-social-auth/hauth?hauth.done=Facebook&code=AQC2ML./...
DEBUG -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth initialize. dump used config: --
DEBUG -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth initialize. dump current session: --
a:3:{s:38:"hauth_session.facebook.hauth_return_to";s:38:"s:30:"/account/authenticate/facebook";";s:37:"hauth_session.facebook.hauth_endpoint";
-- main.localtest.me/scn-social-auth/hauth?hauth.done=Facebook --
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth initialize: check if any error is stored on the endpoint...
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth initialize: no error found. initialization succeed.
DEBUG -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Enter Hybrid_Auth::setup(Facebook) --
DEBUG -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Hybrid_Auth::setup(Facebook), no params given. Trying to get the stored for this provider. -- Array
(
[hauth_return_to] => /account/authenticate/facebook
[hauth_token] => vmj2li2q2bhln5np9ndc7shll6
[hauth_time] => 1437715061
[login_start] => main.localtest.me/scn-social-auth/hauth?hauth.start=Facebook&hauth.time=1437715061
[login_done] => main.localtest.me/scn-social-auth/hauth?hauth.done=Facebook
)
INFO -- 127.0.0.1 -- 2015-07-24T15:19:22+10:00 -- Enter Hybrid_Provider_Adapter::factory(Facebook)
DEBUG -- 127.0.0.1 -- 2015-07-24T15:19:23+10:00 -- Hybrid_Provider_Model::__construct(Facebook) initialized. dump current adapter instance: --
O:25:"Hybrid_Providers_Facebook":7:{s:5:"scope";s:112:"email, user_about_me, user_birthday, user_hometown, user_website,
Любые указатели здесь будут оценены, так как я все еще изучаю входы/выходы Zf2 и PHP 5.4+ замыканий, функций lamda и DI в ZF2.
Опять же, основная проблема заключается в том, что я не могу создать нового пользователя через социальную регистрацию. Я установил флаг «true», хотя он по умолчанию используется в sc-social-auth-global.php