Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Вчера я создавал тему где описывал проблемв - 419 статус
а если отключить токен то просто не авторизуется
Я пришел к выводу что тут дело в том что сессии оканчиваются сразу же
SESSION_LIFETIME=1200
сесии были в файлах - папка была доступна для записи
перенес сессии в бд - но не помогло вот видно что меня авторизовало под ид 81 а потмо авторизация пропала:
http://prntscr.com/n9zy6j
в чем может быть дело??
Не в сети
> Сессии (авторизация) заканчивается мгновенно
> а если отключить токен то просто не авторизуется
Сессии и токен API это два разных способа идентификации пользователя. В Laravel принято применять мидлварь сессии для маршрутов из web.php, а мидлварь про токены для маршрутов из api.php.
Есть подозрение, что что-то пошло не так ))) Может проще с чистого проекта начать, а не вникать чего уже понаворочено?
https://laravel.com/docs/5.8/authentication
vs.
https://laravel.com/docs/5.8/api-authentication
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
ну смотрите
вот мой контроллер с авторизацией:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User\User;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Psy\Exception\ErrorException;
use Session;
/**
* Class LoginController
* @package App\Http\Controllers\Auth
*/
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/account';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
// $this->middleware('guest')->except('logout');
}
/**
* @param Request $request
*
* @return \Illuminate\Http\JsonResponse
*/
public function auth(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email|exists:users,email',
'password' => 'required|string|min:6',
]);
$user = User::where(['email' => $request->email])->first();
if (count($validator->errors()) || ! $user) {
return response()->json(['loginErrors' => $validator->errors(), 'status' => 0], 400);
}
$rt = '/account';
if($user->role == 'rr1')
$rt = '/rr1';
elseif($user->role == 'rr2')
$rt = '/rr2';
$credentials = $request->only(['email', 'password']);
if (Auth::attempt($credentials)) {
$user = Auth::user();
return redirect($rt);
} else {
return redirect('/');
}
}
...
}
вот мои роуты в web.php
Route::middleware('guest')->get('/login', function () {
return view('site.auth');
})->name('authUser');
Route::middleware('auth')->get('/logout', 'Auth\LoginController@logout')->name('logout');
Route::post('/registration', 'Site\RegistrationController@registration');
Route::post('/login', 'Auth\LoginController@auth');
можете что-нибудь посказать?
что не так?
Не в сети
"Заканчивается мгновенно" — это ты как определяешь, тебя приложение вообще узнаёт хотябы какое-то время или ты делаешь вывод эмпирически, наблюдая какие-то записи?
Этот код мало чем полезен. Я бы посмотрел как описаны маршруты для /rr1 /rr2. Ведь ты по ним судишь, что "заканчивается"?!
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Короче говоря, если суть ускользает, надо начинать с типовых примеров из офф. документации. Там маршрут /home покрыт авторизацией.
И ещё было бы неплохо использовать термины одинаково. Вот я шпаргалку писал когда-то: https://php.ru/forum/threads/avtorizaci … ija.53234/
просто я не уверен что мы с тобой понимаем слово "авторизация" одинаково.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
"Заканчивается мгновенно" — это ты как определяешь, тебя приложение вообще узнаёт хотябы какое-то время или ты делаешь вывод эмпирически, наблюдая какие-то записи?
ну потому что если в контролере Auth::attempt и потом Auth::check возвращают true
$user = Auth::user(); - также дает данные об авторизованном пользователе
потом меня редиректит на /login опять
то есть меня редиректит на /account а так как я уже не авторизован то меня редиректит на /login
отсюда такой вывод
даже если не делать редирект а просто Auth::attempt а потом скажем открывать главную страницу то авторизации нет
Не в сети
Ну похоже я угадал — ты авторизацией называешь всё подряд. Извини, я не готов сильно издалека объяснять.
Ссылки по теме я дал.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
И ещё было бы неплохо использовать термины одинаково. Вот я шпаргалку писал когда-то: https://php.ru/forum/threads/avtorizaci … ija.53234/
просто я не уверен что мы с тобой понимаем слово "авторизация" одинаково.
не совсем понял))
ну судя оп вашем посту я имею ввиду аутентификацию
но аутентифицированный пользовтаель имеет доступ к определенным страницам
если можете подскажите както роуты от этого меняются?
Не в сети
скажем даже используя
Auth::loginUsingId(81);
аутентификация не сохраняется
Не в сети
Страницы 1