2023-06-01 10:15:33 +00:00
|
|
|
<x-layout-simple>
|
|
|
|
<div class="flex items-center justify-center h-screen">
|
|
|
|
<div>
|
|
|
|
<div class="flex flex-col items-center pb-8">
|
|
|
|
<div class="text-5xl font-bold tracking-tight text-center text-white">Coolify</div>
|
2023-08-08 09:51:36 +00:00
|
|
|
<x-version/>
|
2023-06-01 10:15:33 +00:00
|
|
|
</div>
|
|
|
|
<div class="w-96" x-data="{ showRecovery: false }">
|
|
|
|
<form action="/two-factor-challenge" method="POST" class="flex flex-col gap-2">
|
|
|
|
@csrf
|
|
|
|
<template x-if="!showRecovery">
|
|
|
|
<div>
|
|
|
|
<x-forms.input required type="number" name="code" label="{{ __('input.code') }}"
|
2023-08-08 09:51:36 +00:00
|
|
|
autofocus/>
|
2023-06-01 10:15:33 +00:00
|
|
|
<div class="pt-2 text-xs cursor-pointer hover:underline hover:text-white"
|
2023-08-08 09:51:36 +00:00
|
|
|
x-on:click="showRecovery = !showRecovery">Use
|
2023-06-01 10:15:33 +00:00
|
|
|
Recovery Code
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<template x-if="showRecovery">
|
|
|
|
<div>
|
|
|
|
<x-forms.input required type="text" name="recovery_code "
|
2023-08-08 09:51:36 +00:00
|
|
|
label="{{ __('input.recovery_code') }}"/>
|
2023-06-01 10:15:33 +00:00
|
|
|
<div class="pt-2 text-xs cursor-pointer hover:underline hover:text-white"
|
2023-08-08 09:51:36 +00:00
|
|
|
x-on:click="showRecovery = !showRecovery">Use
|
2023-06-01 10:15:33 +00:00
|
|
|
One-Time Code
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<x-forms.button type="submit">{{ __('auth.login') }}</x-forms.button>
|
|
|
|
</form>
|
|
|
|
@if ($errors->any())
|
|
|
|
<div class="text-center text-error">
|
|
|
|
<span>{{ __('auth.failed') }}</span>
|
|
|
|
</div>
|
|
|
|
@endif
|
|
|
|
@if (session('status'))
|
2023-06-16 10:35:40 +00:00
|
|
|
<div class="mb-4 font-medium text-green-600">
|
2023-06-01 10:15:33 +00:00
|
|
|
{{ session('status') }}
|
|
|
|
</div>
|
|
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</x-layout-simple>
|