Мы находимся в проекте с angular и Laravel 5 в качестве среды среды и реализуем с использованием рабочего процесса API. Мы используем grunt bower для настройки зависимостей для проекта. Структура проекта следующая.
--ProjectDir
|_angularDir
|_Start
|_bower_components
|_node_modules //front end dependencies
|_gruntfile.js
|_public //laravel public dir
Мы сохранили независимость кода и углового кода для полной архитектуры MVC, а также преимуществ API.
Выпуск:
Запускаем приложение используя grunt serve
и приложение загружает первый угловой маршрут и загружает на localhost:9000
который является настроенным портом.
Это имеет экран входа в систему. После ввода имя пользователя и пароль, Я называю маршрут http://localhost:projectDir/public/login
для Laravel, поскольку у сервера grunt нет доступа к коду laravel localhost: 9000 не будет работать. Это аутентифицирует пользователя по базе данных.
Route::post('login','LoginController@auth');
LoginController.php
public function auth()
{
$rowInput =Request::all();
$input = \Request::only('customer.email', 'customer.password');
if(Auth::attempt(array_get($input, 'customer')))
{
//var_dump(Session::all());
return \Response::json(['status'=>'success','url'=>$rowInput['customer']['redirectURL']]);
}else {
// return Response::json(array('flash' => 'Invalid username or password'), 500);
return \Response::json(['status'=>'fail','url'=>$rowInput['customer']['redirectURL']]);
// return "fail";
}
}
Этот маршрут проходит и проверяет пользователя, но он не запускает сеанс. Следовательно, когда запускается следующий маршрут, сеанс пользователя отсутствует, и пользователь снова перенаправляется в форму входа.
Если я делаю дамп для значений сеанса, он отображается в методе попытки, но если я возвращаюсь к предыдущему маршруту, сеанс пользователя отсутствует. Как настроить маршруты на стороне сервера для обслуживания запросов и сохранения сеанса?
Заголовки запроса ответа
Remote Address:127.0.0.1:80
Request URL:http://localhost/project_dir/public/user/check
Request Method:POST
Status Code:200 OK
Response Headers
view source
Access-Control-Allow-Origin:http://localhost:9000
Cache-Control:no-cache
Connection:Keep-Alive
Content-Length:4
Content-Type:text/html; charset=UTF-8
Date:Wed, 29 Jul 2015 10:30:33 GMT
Keep-Alive:timeout=5, max=99
Server:Apache/2.4.9 (Win64) PHP/5.5.12
Set- Cookie:laravel_session=fgdgdgdfgfgdxUDRra3E1NXdcL25OekJvSlBRPT0iLCJ2YWx1ZSI6IlVaWGF6NmdsV1wvZ3NcL1FTVkR5Y2J3czlQNUkyaWdxZlJmeG5zK2U2c0lqM2VOMEY5S000cVwveTBVazBwVFNSZXlhZmhWSEUxUlRyMVJidE5TcE5jM2FdsfsfdsfsfsdfsfsdfsfzIn0%3D; expires=Wed, 29-Jul-2015 12:30:33 GMT; Max-Age=7200; path=/; domain=http://localhost:9000/; httponly
Vary:Origin
X-Powered-By:PHP/5.5.12
Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:0
Host:localhost
Origin:http://localhost:9000
Referer:http://localhost:9000/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36 FirePHP/4Chrome
X-FirePHP-Version:0.0.6
X-Wf-Max-Combined-Size:261120
Задача ещё не решена.
Других решений пока нет …