@extends('layouts.app') @section('title', __('auth::messages.profile.title')) @section('content') {{-- One form over both panels, and one Save. There were two โ€” details on the left, password on the right โ€” so somebody who corrected their phone number and also changed their password had to press Save twice, with nothing on the screen saying the first press had not covered both. The password boxes are optional here: left empty they mean "leave it alone". Filled, they are governed by exactly the rules they were before, the current password included. Two-factor and the session list stay outside this form. They are not settings being saved but actions, each with its own button โ€” and a form may not contain another form. --}}
@csrf @method('PUT')

{{ __('auth::messages.profile.password_optional') }}

@if ($twoFactorEnabled)

{{ __('auth::messages.profile.two_factor_enabled') }}

@csrf @method('DELETE')
@else

{{ __('auth::messages.profile.two_factor_disabled') }}

@csrf
@endif @if (session('status') === 'two-factor-authentication-enabled')

{{ __('auth::messages.profile.two_factor_scan') }}

{!! request()->user()->twoFactorQrCodeSvg() !!}

{{ __('auth::messages.profile.recovery_codes_help') }}

    @foreach (json_decode(decrypt(request()->user()->two_factor_recovery_codes), true) as $code)
  • {{ $code }}
  • @endforeach
@csrf @endif
@if (count($sessions) > 1)
@csrf @method('DELETE')
@endif
@forelse ($sessions as $session)
{{ $session->device() }} @if ($session->isCurrent) {{ __('auth::messages.profile.session_current') }} @endif
{{ $session->ip }} ยท {{ $session->lastActiveAt->diffForHumans() }}
@unless ($session->isCurrent)
@csrf @method('DELETE')
@endunless
@empty

{{ __('auth::messages.profile.no_sessions') }}

{{ __('auth::messages.profile.no_sessions_text') }}

@endforelse
@endsection