Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Посмотрите пожалуйста что может быть такое.
dd($request->session()->get('userData'));
Показывает юзера то значит аутентификация прошла успешно и в сессии есть юзер,
так как прошел условие
if(Auth::check())){
А если захожу на страницу home появляется форма логина как для не авторизированного пользователя
<?php
namespace App\Http\Middleware;
use App\Http\Controllers\LoginController;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Support\Facades\Auth;
use Illuminate\Auth\Authenticatable;
use Illuminate\Support\Facades\View as View;
use App\User;
use AuthenticatesUsers;
class SmsAuthenticate
{
/**
* The authentication factory instance.
*
* @var \Illuminate\Contracts\Auth\Factory
*/
protected $auth;
/**
* Create a new middleware instance.
*
* @param \Illuminate\Contracts\Auth\Factory $auth
* @return void
*/
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[] ...$guards
* @return mixed
*
* @throws \Illuminate\Auth\AuthenticationException
*/
public function handle(Request $request, Closure $next)
{
dump($request->input('type'));
if(null!==($request->input('type'))){
$request->type=$request->input('type');
}
if(null!==($request->input('id'))){
$id=$request->input('id');
}
if (!Auth::check()/*!$this->auth->user()*/) {
if(isset($request->id)){
$user=User::where('id',$request->id)->get();
Auth::loginUsingId($user[0]->id,true);
$request->session()->put('userData', $user);
}else{
return redirect()->route('sms_login',['type'=>$request->type]);
}
/*return redirect()->route('sms_login',);*/
}
else{
dd($request->session()->get('userData'));
}
return $next($request);
}
}
В чем может быть дело?
Изменено imediasun (06.10.2017 00:29:59)
Не в сети
Попробуй вместо
Auth::check()
auth()->check() и auth()->user()->id везде
Изменено sam (06.10.2017 11:32:21)
Не в сети
Написал вместо
Auth::check()
auth()->check()
а вместо
Auth::loginUsingId($user[0]->id,true);
auth()->loginUsingId($user[0]->id,true);
Та же проблема ничего не поменялось
Не в сети
Слушай, если я не ошибаюсь, после версии 5.2 ларавелевские сессии нельзя передавать в контроллеры и миделвары.. миделварь сам рулит сессией.. тебе нужно самому передать в него ид пользователя и в нем уже сравнивать может он или не может отправлять запрос.
public function handle($request, Closure $next, $adminId)
https://laravel.ru/forum/viewtopic.php?id=2907 тут в комментах я написал как туда передать пользователя
Изменено sam (06.10.2017 13:44:34)
Не в сети
Страницы 1