@@ -8,6 +8,7 @@ use Illuminate\Support\Facades\Log; | |||
use Illuminate\Support\Facades\Hash; | |||
use Illuminate\Auth\Events\Registered; | |||
use Illuminate\Support\Facades\Password; | |||
use Illuminate\Support\Facades\Auth; | |||
class UserController extends Controller | |||
{ | |||
@@ -42,14 +43,13 @@ class UserController extends Controller | |||
if ($status === Password::RESET_LINK_SENT) { | |||
return response()->json([ | |||
"status" => "success" | |||
]) | |||
]); | |||
} else { | |||
return response()->json($errors->all()) | |||
return response()->json($errors->all()); | |||
} | |||
} | |||
public function resetPassword(Request $request) { | |||
$request->validate([ | |||
'token' => 'required', | |||
'email' => 'required|email', | |||
@@ -62,7 +62,7 @@ class UserController extends Controller | |||
function ($user, $password) use ($request) { | |||
$user->forceFill([ | |||
'password' => Hash::make($password) | |||
])->setRememberToken(Str::random(60)) | |||
])->setRememberToken(Str::random(60)); | |||
}); | |||
if ($status == Password::PASSWORD_RESET) { | |||
return response()->json([ | |||
@@ -72,4 +72,17 @@ class UserController extends Controller | |||
return response()->json([__($status)]); | |||
} | |||
} | |||
public function login(Request $request) { | |||
$credentials = $request->only('email', 'password'); | |||
//This should probably be changed to not return a page | |||
if (Auth::attempt($credentials)) { | |||
$request->session()->regenerate(); | |||
return response()->json(["status" => "success"]); | |||
} | |||
return response()->json(["status" => "error"]); | |||
} | |||
} |
@@ -6,7 +6,6 @@ use Illuminate\Contracts\Auth\MustVerifyEmail; | |||
use Illuminate\Database\Eloquent\Factories\HasFactory; | |||
use Illuminate\Foundation\Auth\User as Authenticatable; | |||
use Illuminate\Notifications\Notifiable; | |||
use Illuminate\Contracts\Auth\MustVerifyEmail; | |||
class User extends Authenticatable implements MustVerifyEmail | |||
{ | |||
@@ -20,6 +20,7 @@ class CreateUsersTable extends Migration | |||
$table->timestamp('email_verified_at')->nullable(); | |||
$table->string('password'); | |||
$table->string('role'); | |||
$table->boolean('active'); | |||
$table->bigInteger('credits'); | |||
$table->rememberToken(); | |||
$table->timestamps(); | |||
@@ -4,7 +4,6 @@ let registerToggles = document.querySelectorAll(".register-btn, .register-area . | |||
const passInput = document.getElementById("password"); | |||
const passInput2 = document.getElementById("confirm_password"); | |||
let token = getCookie("XSRF-TOKEN"); | |||
console.log(document.getElementById("register-name")); | |||
function register(event) { | |||
fetch("/sanctum/csrf-cookie", { | |||
method: "GET" | |||
@@ -20,11 +19,12 @@ function register(event) { | |||
name: document.getElementById("register-name").value, | |||
email: document.getElementById("register-email").value, | |||
password: document.getElementById("register-password").value | |||
}) | |||
}).then((response2) => { | |||
console.log("sent registration"); | |||
console.log(response2.json()); | |||
}), | |||
password_confirmation: document.getElementById("confirm-password").value | |||
}); | |||
}).then((response) => { | |||
console.log("sent registration"); | |||
console.log(response.json()); | |||
}); | |||
event.preventDefault(); | |||
} | |||
@@ -40,6 +40,28 @@ function checkPasswords() { | |||
passInput2.setCustomValidity(""); | |||
} | |||
} | |||
function login(event) { | |||
fetch("/sanctum/csrf-cookie", { | |||
method: "GET" | |||
}).then(function(response) { | |||
token = getCookie("XSRF-TOKEN"); | |||
fetch("/login", { | |||
method: "POST", | |||
headers: { | |||
"Content-Type": "application/json", | |||
"X-XSRF-TOKEN": token | |||
}, | |||
body: JSON.stringify({ | |||
email: document.getElementById("login_email").value, | |||
password: document.getElementById("login_password").value | |||
}) | |||
}).then((response2) => { | |||
console.log("sent login"); | |||
console.log(response2.json()); | |||
}); | |||
}); | |||
event.preventDefault(); | |||
} | |||
toggle.addEventListener("click", function() { | |||
heroText.forEach((item) => { | |||
item.classList.toggle("hidden"); | |||
@@ -59,6 +81,7 @@ for (i = 0; i < cols.length; i++) { | |||
}); | |||
} | |||
document.getElementById("register-form").addEventListener("submit", register); | |||
document.getElementById("login_form").addEventListener("submit", login); | |||
passInput2.oninput = checkPasswords; | |||
passInput.oninput = checkPasswords; | |||
//# sourceMappingURL=main.js.map |
@@ -5,7 +5,6 @@ let registerToggles = document.querySelectorAll(".register-btn, .register-area\ | |||
const passInput = document.getElementById("password") | |||
const passInput2 = document.getElementById("confirm_password") | |||
let token = getCookie('XSRF-TOKEN') | |||
console.log(document.getElementById("register-name")) | |||
function register(event) { | |||
fetch("/sanctum/csrf-cookie", { | |||
@@ -24,7 +23,6 @@ function register(event) { | |||
console.log('sent registration'); | |||
console.log(response.json()) | |||
}); | |||
}) | |||
event.preventDefault(); | |||
} | |||
@@ -42,6 +40,25 @@ function checkPasswords() { | |||
} | |||
} | |||
function login(event) { | |||
fetch("/sanctum/csrf-cookie", { | |||
method: 'GET' | |||
}).then( function(response) { | |||
token = getCookie('XSRF-TOKEN') | |||
fetch("/login", { | |||
method: 'POST', | |||
headers: {'Content-Type': 'application/json', | |||
'X-XSRF-TOKEN': token}, | |||
body: JSON.stringify({"email": document.getElementById("login_email").value, | |||
"password": document.getElementById("login_password").value}), | |||
}).then(response => { | |||
console.log('sent login'); | |||
console.log(response.json()) | |||
}); | |||
}) | |||
event.preventDefault(); | |||
} | |||
toggle.addEventListener("click", function() { | |||
heroText.forEach(item => { | |||
item.classList.toggle("hidden") | |||
@@ -70,5 +87,6 @@ for (i = 0; i < cols.length; i++) { | |||
} | |||
document.getElementById('register-form').addEventListener('submit', register) | |||
document.getElementById('login_form').addEventListener('submit', login) | |||
passInput2.oninput = checkPasswords | |||
passInput.oninput = checkPasswords |
@@ -17,16 +17,16 @@ | |||
<img src="/images/arrow-up.svg" height="30px" alt=""> | |||
</a> | |||
@guest | |||
<form class= 'login' method='POST'> | |||
<form id='login_form' class= 'login' method='POST'> | |||
@csrf | |||
<div> | |||
<label for='sender_email'>Email</label> | |||
<input required type='email' name='sender_email' placeholder='' | |||
<input required id='login_email' type='email' name='sender_email' placeholder='' | |||
spellcheck='false'> | |||
</div> | |||
<div> | |||
<label for='sender_password'>Password</label> | |||
<input required type='password' name='sender_password' placeholder='' spellcheck='false'> | |||
<input required id='login_password' type='password' name='sender_password' placeholder='' spellcheck='false'> | |||
</div> | |||
<button class='login-btn'type="login">Log in</button> | |||
</form> | |||
@@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Route; | |||
use App\Http\Controllers\UserController; | |||
use Illuminate\Foundation\Auth\EmailVerificationRequest; | |||
use Illuminate\Http\Request; | |||
use Illuminate\Support\Facades\Auth; | |||
/* | |||
|-------------------------------------------------------------------------- | |||
@@ -17,11 +18,13 @@ use Illuminate\Http\Request; | |||
*/ | |||
Route::get('/', function () { | |||
if (Auth::check()) { | |||
return redirect('panel'); | |||
} | |||
return view('home'); | |||
})->name('login'); | |||
Route::view('/panel', 'panel'); | |||
Route::view('/panel', 'panel')->middleware([ 'auth', 'verified' ]); | |||
Route::view('/panel', 'panel')->middleware([ 'auth', 'verified' ])->name('panel'); | |||
Route::view('/verify-email', | |||
'verify-email')->middleware('auth')->name('verification.notice'); | |||
@@ -51,4 +54,8 @@ Route::get('/reset-password/{token}', function ($token) { | |||
})->middleware('guest')->name('password.reset'); | |||
Route::post('/reset-passowrd', [UserController::class, | |||
'resetPassword'])->middleware('guest')->name('password.email'); | |||
'resetPassword'])->middleware('guest'); | |||
Route::post('/login', [UserController::class, | |||
'login']); | |||