lubo_comment_query/app/Http/Controllers/UserController.php

68 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class UserController extends BaseController
{
public function login_page(Request $request)
{
return view("user.login");
}
public function authenticate(Request $request): \Illuminate\Http\RedirectResponse
{
$request->validate([
"username" => ["required"],
"password" => ["required"],
]);
$credentials = [
"password" => $request->post("password"),
];
if (str_contains($request->post("username"), "@")) {
$credentials["email"] = $request->post("username");
} else {
$credentials["name"] = $request->post("username");
}
if (Auth::attempt($credentials, $request->post("remember", 0) == 1)) {
$request->session()->regenerate();
return redirect()->intended();
}
return back()->withErrors([
"username" => "无此用户",
]);
}
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect("/");
}
public function register_page(Request $request)
{
return view("user.register");
}
public function register(Request $request)
{
$request_payload = $request->validate([
"name" => ["required", "unique:users"],
"email" => ["required", "email", "unique:users"],
"password" => ["required"],
]);
$user = new User();
$request_payload["password"] = Hash::make($request_payload["password"]);
$user->fill($request_payload);
$user->save();
return redirect(route("login"));
}
}