当前位置 : 主页 > 网络编程 > PHP >

使用Vue3 & Vite + Laravel 前后端分离基础案例 (2后端)

来源:互联网 收集:自由互联 发布时间:2023-09-03
本文为后端配置。 前端配置详见 ​​ 《使用Vue3 Vite + Laravel 前后端分离基础案例 (1前端》 ​​ 第一步:创建Laravel项目 composer create-project laravel/laravel la10vue3 第二步:配置数据库 创建

本文为后端配置。 前端配置详见 ​​《使用Vue3 & Vite + Laravel 前后端分离基础案例 (1前端》​​

第一步:创建Laravel项目

composer create-project laravel/laravel la10vue3

第二步:配置数据库

创建数据库, 配置用户名和密码

// .env

DB_DATABASE=la10vue3
DB_USERNAME=root
DB_PASSWORD=root

第三步:安装 passport 并进行配置

  1. 参照laravel官网提示进行配置即可
composer require laravel/passport

php artisan migrate

php artisan passport:install
  1. User 模型使用 Passport

使用Vue3 & Vite + Laravel 前后端分离基础案例 (2后端)_laravel

第四步:添加 api 驱动

// config/auth.php

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
// 添加 api
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],

第五步:创建控制器并添加方法

php artisan make:controller Auth/AuthController


<?php
// app/Http/Controllers/Test/AuthController.php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules;
use Symfony\Component\HttpFoundation\Response;

class AuthController extends Controller
{
public function login(Request $request)
{
if (auth()->attempt($request->all())) {
return response([
'user' => auth()->user(),
'access_token' => auth()->user()->createToken('authToken')->accessToken
], Response::HTTP_OK);
}

return response([
'message' => 'This User does not exist'
], Response::HTTP_UNAUTHORIZED);
}

public function register(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);

$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password)
]);

return response($user, Response::HTTP_CREATED);
}
}

第六步:创建路由

// routes/api.php

Route::post('login', [\App\Http\Controllers\Auth\AuthController::class, 'login']);
Route::post('register', [\App\Http\Controllers\Auth\AuthController::class, 'register']);

Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});

到这里,后端的工作也完成了。

上一篇:如何用PHP实现搜索引擎类?
下一篇:没有了
网友评论