gpt4 book ai didi

Laravel - 保护 API 路由

转载 作者:行者123 更新时间:2023-12-05 09:13:39 28 4
gpt4 key购买 nike

我有一个以 VUEJS 作为前端的 Laravel 应用程序,我通过创建 API 路由获取数据。因此,例如获取帖子数据的路线将是 http://localhost/api/posts

保护路线的最佳方法是什么?

我在 laravel 文档上看到有:API认证https://laravel.com/docs/5.8/api-authentication还有护照https://laravel.com/docs/5.8/passport

例如现在任何用户都可以到达路线http://localhost/api/posts他将获得包含所有帖子数据的 json。

我想保护它并只允许来 self 的 VUEJS 组件的内部 api 请求获取数据

最佳答案

我假设您将使用 Laravel 身份验证路由进行身份验证,并且在身份验证之后,您到达的下一个 View 是包含所有 Vue 组件的 View 。

解决方案很简单,即使是在 documentation 上, 应阐明必要的步骤。

我们需要:

  1. 添加护照 composer require laravel/passport
  2. 进行迁移 php artisan migrate
  3. 安装护照 php artisan passport:install

第四步比较复杂。我们需要打开我们的 User.php 模型文件。首先我们需要导入 HasApiTokens 并告诉模型使用它。

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable

{

use HasApiTokens, Notifiable;

.......

}

然后在我们的config/auth.php上我们需要修改api数组,把driver改成passport

'api' => [

//for API authentication with Passport

'driver' => 'passport',

'provider' => 'users',

],

然后在我们的 app/Http/Kernel.php 上,我们需要将中间件添加到键 web 中的 $middlewareGroups 数组。

protected $middlewareGroups = [

'web' => [

................

//for API authentication with Passport

\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,

],

现在我们可以在我们的 api 路由上使用 auth:api 中间件。

Route::middleware('auth:api')->group( function(){
...your routes here
});

关于Laravel - 保护 API 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817534/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com