📅  最后修改于: 2023-12-03 15:19:54.948000             🧑  作者: Mango
Sanctum Laravel 是一个用于构建基于 Laravel 框架的 API 身份验证系统的官方软件包。它提供了一种简单、轻量级的方式来实现无状态(stateless)的身份验证,适用于移动应用、单页应用和其他没有 session 的前端应用。
Sanctum Laravel 主题是为程序员设计的,目的是帮助他们理解和使用 Sanctum Laravel 软件包。以下是该主题的详细介绍。
要使用 Sanctum Laravel,首先需要将其安装在 Laravel 项目中。可以使用 Composer 进行安装:
composer require laravel/sanctum
成功安装后,需要将 Sanctum Laravel 配置到 Laravel 项目中。在 .env
文件中设置以下选项:
SANCTUM_STATEFUL_DOMAINS=localhost:8000
接下来,需要创建一些 API 路由,以便其他应用程序可以进行身份验证。可以在 routes/api.php
文件中定义这些路由。
use App\Http\Controllers\Api\AuthController;
Route::post('/login', [AuthController::class, 'login']);
Route::post('/register', [AuthController::class, 'register']);
// 其他 API 路由...
需要创建一个控制器来处理身份验证逻辑。可以通过以下命令来生成该控制器:
php artisan make:controller Api/AuthController
在 AuthController
类中,可以定义 login()
和 register()
方法来处理登录和注册逻辑。
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function login(Request $request)
{
// 处理登录逻辑
}
public function register(Request $request)
{
// 处理注册逻辑
}
}
在登录和注册方法中,可以使用 Sanctum 提供的 createToken
方法来创建用户的 API 令牌。
use Illuminate\Support\Facades\Hash;
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$token = $request->user()->createToken('auth_token')->plainTextToken;
// 返回 token 给用户
} else {
// 处理登录失败逻辑
}
}
public function register(Request $request)
{
$user = User::create([
'name' => $request->input('name'),
'email' => $request->input('email'),
'password' => Hash::make($request->input('password')),
]);
$token = $user->createToken('auth_token')->plainTextToken;
// 返回 token 给用户
}
一旦用户收到了身份验证令牌,他们可以将其用于后续的 API 请求。可以使用 HTTP 请求的 Authorization 头部字段来传递令牌。
curl -H "Authorization: Bearer {token}" http://localhost:8000/api/user
Sanctum Laravel 是一个强大而灵活的 API 身份验证系统,它为程序员提供了一个简单且丰富的方式来实现 API 身份验证。通过这个主题,程序员可以了解如何安装、配置和使用 Sanctum Laravel 软件包来构建安全可靠的 API。