Как сделать так, чтобы перенаправление работало корректно при входе в Google через плагин CakeD C? - PullRequest
0 голосов
/ 20 февраля 2020

Я использую плагин пользователя cakeD C (8.5.1), чтобы ограничить мой сайт Cake PHP (3.89) только членами моей организации и следовал этим указаниям:

https://www.cakedc.com/jorge_gonzalez/2016/10/11/create_google_app_for_web_oauth2_login_step_by_step

https://www.cakedc.com/jorge_gonzalez/2016/10/11/login-with-google-oauth2-in-cakephp-using-cakedc-users-plugin

Я добавил эти две строки в мой файл bootstrap. php, который немного отличался от что указано в инструкциях:

Configure::write('Users.config', ['users']); //add this line before Plugin::load('CakeDC/Users...
$this->addPlugin('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);

мой сайт https://internal.domain.com

, если не войти в систему, он перенаправляет на:

https://internal.domain.com/login

после входа в систему Google перенаправляет на

https://internal.domain.com/auth/google?state=XXXXXXX&code=4 / XXXXXXX & scope = XXXXXX & authuser = XXXX & hd = XXXXXX & prompt = XXXX & session_state = XXXXXX

которая не работает как страница, то есть для нее не настроен маршрут:

Ошибка базы данных Ошибка PDOException: SQLSTATE [22001]: строковые данные, усеченные справа: 1406 Данные слишком длинные для столбца 'avatar' в строке 1

Из журналов видно, что пользователь не вошел в систему, так что это заставляет меня поверить, что я что-то не так сделал при установке.

Это просто перенаправление на неправильную страницу или плагин установлен неправильно? Google не позволит мне изменить redirect_uri на что-либо еще, то есть, если я добавлю туда другой адрес, он сообщит о несоответствии uri_redirect при входе в систему и даст мне ссылку на консоль, чтобы исправить это.

1 Ответ

1 голос
/ 21 февраля 2020

Specifi c маршруты добавлены, чтобы соответствовать всем вашим провайдерам с включенным социальным входом здесь https://github.com/CakeDC/users/blob/8.5.1/config/bootstrap.php#L37

Пожалуйста, проверьте, правильно ли был создан маршрут через bin/cake routes и конфигурацию провайдера Google правильно установлено, см. https://github.com/CakeDC/users/blob/8.5.1/Docs/Documentation/SocialAuthenticate.md#setup

...