📜  sanctum laravel - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:19:54.948000             🧑  作者: Mango

Sanctum Laravel - Shell-Bash 主题

Sanctum Laravel 是一个用于构建基于 Laravel 框架的 API 身份验证系统的官方软件包。它提供了一种简单、轻量级的方式来实现无状态(stateless)的身份验证,适用于移动应用、单页应用和其他没有 session 的前端应用。

主题介绍

Sanctum Laravel 主题是为程序员设计的,目的是帮助他们理解和使用 Sanctum Laravel 软件包。以下是该主题的详细介绍。

安装 Sanctum Laravel

要使用 Sanctum Laravel,首先需要将其安装在 Laravel 项目中。可以使用 Composer 进行安装:

composer require laravel/sanctum
配置 Sanctum Laravel

成功安装后,需要将 Sanctum Laravel 配置到 Laravel 项目中。在 .env 文件中设置以下选项:

SANCTUM_STATEFUL_DOMAINS=localhost:8000
创建 API 路由

接下来,需要创建一些 API 路由,以便其他应用程序可以进行身份验证。可以在 routes/api.php 文件中定义这些路由。

use App\Http\Controllers\Api\AuthController;

Route::post('/login', [AuthController::class, 'login']);
Route::post('/register', [AuthController::class, 'register']);

// 其他 API 路由...
创建 Sanctum 身份验证控制器

需要创建一个控制器来处理身份验证逻辑。可以通过以下命令来生成该控制器:

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 进行身份验证

在登录和注册方法中,可以使用 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 进行身份验证

一旦用户收到了身份验证令牌,他们可以将其用于后续的 API 请求。可以使用 HTTP 请求的 Authorization 头部字段来传递令牌。

curl -H "Authorization: Bearer {token}" http://localhost:8000/api/user
结论

Sanctum Laravel 是一个强大而灵活的 API 身份验证系统,它为程序员提供了一个简单且丰富的方式来实现 API 身份验证。通过这个主题,程序员可以了解如何安装、配置和使用 Sanctum Laravel 软件包来构建安全可靠的 API。