c语言编程笔录

首页 >   > 笔记大全

笔记大全

PHP开发使用 Laravel Sanctum 实现 SPA 应用安全认证

更新时间:2023-12-07
第一段 Laravel Sanctum 是 Laravel 官方发布的 SPA 应用程序的一种身份验证方式,它利用 Laravel 自带的路由和控制器,为客户端提供了一种简单的方法来验证身份并获取 API 工作所需的功能。Laravel Sanctum 使用的是 API token 验证系统,它基于API token的无状态身份验证方案,这可以确保 API 请求在应用程序和服务器之间进行身份验证时是安全和可靠的。

composer require laravel/sanctum

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

第二段 为了实现 Laravel Sanctum 安全认证,我们需要进行一些额外的工作。首先,配置 AppServiceProvider 来允许我们跨站点请求置标。然后,对于每个受 Sanctum 保护的路由,我们需要将此标记作为隐式的 POST 参数传递。最后,我们需要设置每个前端应用程序的时效性和自动删除 API 令牌功能。

use Illuminate\Support\Facades\Crypt;

use Illuminate\Support\Facades\Session;

...

$request->session()->put('request', $request);
$encrypted = Crypt::encryptString($token);
$request->session()->put($this->sessionKeyName, $encrypted);
$request->session()->put('spa-url', $spaUrl);
第三段 我们需要想办法在前端应用程序中保存我们的 API 令牌。为此,我们将使用 Laravel Sanctum 自带的 SPA 舌头,在响应上设置你的令牌,然后在前端需要使用它的请求头中添加它。

public function createToken(Request $request) { $request->validate([ 'name' => 'required', 'redirect' => 'required', ]);

$tokens = $request->user()->tokens;

foreach ($tokens as $token) {

$token->delete();

}

return $request->user()->createToken( $request->name, )->plainTextToken; }
第四段 在 Laravel Sanctum 的帮助下,开发人员可以更轻松地为他们的应用添加安全验证,特别是对于 SPA 应用程序。在使用 Laravel Sanctum 实现 SPA 应用安全认证时,我们需要充分利用 Sanctum 为我们提供的方便性和易用性,缩短我们的开发过程。同时,我们也应该重视 API 的安全性,并努力保证应用程序的高度安全性,确保用户的数据安全和个人隐私的保护。

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