You've already forked lubo_comment_query
用户支持登录登出
This commit is contained in:
67
app/Http/Controllers/UserController.php
Normal file
67
app/Http/Controllers/UserController.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?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"));
|
||||
}
|
||||
}
|
44
app/Models/User.php
Normal file
44
app/Models/User.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
use HasApiTokens, HasFactory, Notifiable;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password',
|
||||
'remember_token',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
}
|
@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const HOME = '/home';
|
||||
public const HOME = '/';
|
||||
|
||||
/**
|
||||
* The controller namespace for the application.
|
||||
@ -38,10 +38,10 @@ class RouteServiceProvider extends ServiceProvider
|
||||
$this->configureRateLimiting();
|
||||
|
||||
$this->routes(function () {
|
||||
// Route::prefix('api')
|
||||
// ->middleware('api')
|
||||
// ->namespace($this->namespace)
|
||||
// ->group(base_path('routes/api.php'));
|
||||
Route::prefix('api')
|
||||
->middleware('api')
|
||||
->namespace($this->namespace)
|
||||
->group(base_path('routes/api.php'));
|
||||
|
||||
Route::middleware('web')
|
||||
->namespace($this->namespace)
|
||||
|
Reference in New Issue
Block a user