Я использовал этот код для аутентифицировать имя пользователя из внешнего источника без использования базы данных, но laravel 5.2 не сохраняет аутентификацию и запрашивает внешний источник каждый раз.Laravel 5.2 - Auth :: login не сохраняется при использовании нового App User
class Authenticate
{
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
$username = getFromExternalSource();
if($username==null){ redirect()->guest('auth/login'); }
$user = new \App\User(['username'=>'admin']);
Auth::login($user);
}
}
return $next($request);
}
}
Но когда я изменяю AUTH :: логин с помощью $ пользовательской модели получить из нее базы данных работы, я не знаю, почему:
$userDB = \App\User::where('username','=','admin')->first();
Auth::login($userDB);
Мой маршрут (например, я хочу, чтобы получить доступ к http://myApp/api)
Route::group(['middleware' => ['web']], function() {
Route::group(['middleware' => 'auth'], function() {
Route::get('api/', '[email protected]');
});
Route::group(['middleware' => ['csrf']], function() {
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController'
]);
});
});
Спасибо. Я только уточнил свой вопрос, но я хочу аутентифицировать и разрешить использование внешнего источника (например, OpenAM), но я не хочу хранить эти идентификаторы в базе данных приложений. – o0omycomputero0o
Хорошо, вы изменили значение по умолчанию 'auth.php'? –
@ o0omycomputero0o Вы пытались изменить '$ user = new \ App \ User (['username' => 'admin']);' в '$ user = new \ App \ User (['username' => 'admin' , 'id' => 'admin']); ' –