Last active
January 26, 2022 16:16
-
-
Save NandoKstroNet/ba4bfdc773171c74dde698ad96b4c050 to your computer and use it in GitHub Desktop.
Tela de Registro e Login da Loja Tenancy com Laravel em https://codeexperts.com.br/curso/laravel-tenancy-1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<x-guest-layout> | |
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8 flex"> | |
<!-- Sign-in --> | |
<div class="w-1/2 border-r border-gray-400 mt-8 p-4"> | |
<h3 class="font-extrabold text-2xl w-full pb-8 pl-4">Login (Você já possui uma conta?)</h3> | |
<form action="{{route('sign.in', request('subdomain'))}}" method="post"> | |
@csrf | |
<div class="block mb-10"> | |
<label class="font-bold">Email</label> | |
<input type="text" name="login[email]" value="{{old('login.email')}}" class="w-full block"> | |
@error('login.email') | |
{{$message}} | |
@enderror | |
</div> | |
<div class="block mb-10"> | |
<label class="font-bold">Senha</label> | |
<input type="password" name="login[password]" value="{{old('login.password')}}" class="w-full block"> | |
@error('login.password') | |
{{$message}} | |
@enderror | |
</div> | |
<button class="text-xl font-bold px-4 py-2 rounded bg-green-600 text-white shadow hover:bg-green-300 transition ease-in-out delay-150 uppercase">Login</button> | |
</form> | |
</div> | |
<!-- Sign-up --> | |
<div class="w-1/2 ml-10 mt-8"> | |
<h3 class="font-extrabold text-2xl w-full pb-8 pl-4">Registro (Não têm conta?)</h3> | |
<form action="{{route('sign.up', request('subdomain'))}}" method="post"> | |
@csrf | |
<div class="block mb-10"> | |
<label class="font-bold">Nome Completo</label> | |
<input type="text" name="register[name]" value="{{old('register.name')}}" class="w-full block"> | |
@error('register.name') | |
{{$message}} | |
@enderror | |
</div> | |
<div class="block mb-10"> | |
<label class="font-bold">Email</label> | |
<input type="email" name="register[email]" value="{{old('register.email')}}" class="w-full block"> | |
@error('register.email') | |
{{$message}} | |
@enderror | |
</div> | |
<div class="block mb-10"> | |
<label class="font-bold">Senha</label> | |
<input type="password" name="register[password]" value="{{old('register.password')}}" class="w-full block"> | |
@error('register.password') | |
{{$message}} | |
@enderror | |
</div> | |
<div class="block mb-10"> | |
<label class="font-bold">Confirmar Senha</label> | |
<input type="password" name="register[password_confirmation]" value="{{old('register.password_confirmation')}}" class="w-full block"> | |
</div> | |
<button class="text-xl font-bold px-4 py-2 rounded bg-green-600 text-white shadow hover:bg-green-300 transition ease-in-out delay-150 uppercase">Registrar</button> | |
</form> | |
</div> | |
</div> | |
</x-guest-layout> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers\Front; | |
use App\Http\Controllers\Controller; | |
use App\Models\Store; | |
use App\Models\User; | |
use App\Services\AuthenticateService; | |
use App\Services\RegisterService; | |
use Illuminate\Http\Request; | |
use Illuminate\Validation\Rules; | |
class AuthenticateController extends Controller | |
{ | |
public function index($subdomain) | |
{ | |
return view('front.sign-in-up'); | |
} | |
public function signIn($subdomain, Request $request, AuthenticateService $authenticateService, Store $store) | |
{ | |
$data = $request->validate([ | |
'login.email' => ['required', 'string', 'email', 'max:255'], | |
'login.password' => ['required', Rules\Password::defaults()], | |
]); | |
$data['login']['tenant_id'] = $store->whereSubdomain($subdomain)->first()->tenant_id; | |
$authenticateService->login($data['login'], new User()); | |
return redirect()->intended(); | |
} | |
public function signUp($subdomain, Request $request, RegisterService $registerService, Store $store) | |
{ | |
$data = $request->validate([ | |
'register.name' => ['required', 'string', 'max:255'], | |
'register.email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'], | |
'register.password' => ['required', 'confirmed', Rules\Password::defaults()], | |
]); | |
$store = $store->whereSubdomain($subdomain)->first(['id', 'tenant_id']); | |
$data['register']['store_id'] = $store->tenant_id; | |
$data['register']['tenant_id'] = $store->id; | |
$registerService->register($data['register'], new User()); | |
return redirect()->intended(); | |
} | |
public function logout($subdomain, Request $request) | |
{ | |
auth()->logout(); | |
return redirect()->route('front.store', $request->domain); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
Route::name('sign.')->group(function() { | |
Route::get('/sign-in', [\App\Http\Controllers\Front\AuthenticateController::class, 'index'])->name('index'); | |
Route::post('/sign-in', [\App\Http\Controllers\Front\AuthenticateController::class, 'signIn'])->name('in'); | |
Route::post('/sign-up', [\App\Http\Controllers\Front\AuthenticateController::class, 'signUp'])->name('up'); | |
}); | |
Route::get('logout', [\App\Http\Controllers\Front\AuthenticateController::class, 'logout'])->name('up'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment