Я интегрирую Laravel в устаревшее php-приложение.Страница входа использовалась для прямой публикации на verifyUser.php
, который также запустил сеанс Symfony.
Новая архитектура теперь отправляет в API Laravel, который делает публикацию Guzzle в verifyUser.php
.
javascript:
$(document).ready(function(){
$('#signIn').submit(function(){
var a = $('#email').val();
$.post('/api/login', { //this used to post to verifyUser.php
Username: $('#email').val(),
Password: $('#password').val()
}, function(data){
if(data['credentials'] == true){
console.log('credentials true');
console.log(data['uri']);
window.location.href=data['uri'];
} else {
$('#errMsg').html(data['errMsg']);
$('.alert').show();
}
}, 'json');
return false;
});
функции контроллера:
public function authenticate(Request $request) //aka api/login endpoint
{
//...
$legacyRes = $this->authenticateLegacy($request);
//...
}
private function authenticateLegacy(Request $request)
{
$response = null;
try {
$response = $this->client->post('/admin/verifyUser.php', [
'form_params' => ['Username' => $request->get('Username'),
'Password' => $request->get('Password')]
]);
}
catch(Exception $exception){
Log::error('Errrererererer', [$exception->getMessage()]);
}
$body = (string)$response->getBody();
Log::info('BODY:', [$body]);
return $body;
}
Я пропустил verifyUser.php, потому что я проверил его, и он возвращает ожидаемые результаты.
При использовании браузера информация о сеансе не устанавливается.Но, согласно моим ответам, все должно работать.Это потому, что я перенаправляю запрос через жрет?