Метод viaRemember
Метод viaRemember применяется к фасаду Auth и позволяет проверить, был ли текущий аутентифицированный пользователь авторизован с помощью cookie "запомнить меня". Метод возвращает true, если пользователь был аутентифицирован через токен запоминания, и false в противном случае. Этот метод полезен для определения способа входа пользователя и может использоваться для усиления безопасности, например, для запроса дополнительной проверки при чувствительных операциях.
Синтаксис
<?php
use Illuminate\Support\Facades\Auth;
$res = Auth::viaRemember();
?>
Метод не принимает никаких параметров и возвращает булево значение.
Пример
Давайте проверим, был ли пользователь аутентифицирован через "запомнить меня" в контроллере:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class ProfileController extends Controller
{
public function show()
{
if (Auth::check()) {
$viaRemember = Auth::viaRemember();
if ($viaRemember) {
echo "User authenticated via remember token";
} else {
echo "User authenticated via session";
}
}
}
}
?>
Результат выполнения кода:
"User authenticated via remember token"
Пример
Используем метод viaRemember в шаблоне Blade для отображения разного контента:
@auth
@if (Auth::viaRemember())
<div>
You are logged in using "Remember Me" feature.
Please confirm your identity for sensitive operations.
</div>
@else
<div>
You are logged in via session.
</div>
@endif
@endauth
Результат выполнения кода:
<div>
You are logged in using "Remember Me" feature.
Please confirm your identity for sensitive operations.
</div>
Пример
Применим метод viaRemember для усиления безопасности при выполнении критических операций:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class PaymentController extends Controller
{
public function processPayment()
{
if (!Auth::check()) {
return redirect()->route('login');
}
if (Auth::viaRemember()) {
// Request additional verification for sensitive operation
echo "Additional verification required for payment";
return;
}
echo "Payment processed successfully";
}
}
?>
Результат выполнения кода:
"Additional verification required for payment"