在本教程中,我们将了解如何在 Laravel 应用中使用 laravel passport 认证。 我们还将使用 Laravel Passport 认证 构建一个简单的产品 (创建, 查询, 更新和删除 )。
Laravel 已经提供了传统的登录表单身份验证,但是如果你想使用 APIs 呢?APIs 使用令牌来验证用户,因为它们不使用会话。当用户通过 API 登录时,会生成令牌并将其发送给用户,该用户可用于身份验证。Laravel 提供 Passport ,可以毫无困难地使用 API 认证。
让我们看看如何在 Laravel 应用程序中设置和配置用于 API 认证和 RESTful APIs 的 Laravel Passport 。
创建一个新的应用
我们新建一个Laravel
应用。 执行下面的命令就可以创建一个全新的laravel
应用。
composer create-project --prefer-dist laravel/laravel passport
安装Passport
扩展
我们使用composer
安装Passport
扩展。 执行下面的命令来安装这个扩展。
composer require laravel/passport
Laravel
配置Passport
Laravel
Passport
扩展需要做一些配置。
服务提供者
我们使用的Laravel 5.6
最新版本,它可以使用包发现并自动注册服务。如果你使用 laravel 5.4 或者 更低版本,你需要在 config/app.php 文件中为Passport
注册服务。就这样,在这个文件中的providers数组中添加注册服务。
'providers' => [
....
LaravelPassportPassportServiceProvider::class,
]
迁移和安装
在.env 文件中设置数据库凭据。 Laravel Passport 提供了需要在我们的数据库中的护照表的迁移文件。 Passport迁移用于存储令牌和客户端信息。 运行migration
命令以将架构迁移到数据库。
php artisan migrate
接下来,需要使用以下命令安装 Passport
。 它将生成生成秘密访问令牌所需的加密密钥。
php artisan passport:install
Passport 配置
在此步骤中,我们需要在 Laravel
应用程序中进行更改以完成 Passport
配置。
app/User.php
在你的 User model 中添加 LaravelPassportHasApiTokens trait 。它将提供一些辅助方法。
<?php
namespace App;
use IlluminateNotificationsNotifiable;
use IlluminateFoundationAuthUser as Authenticatable;
use LaravelPassportHasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
/**
* 这是可被赋值属性集合
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* 这是应该被隐藏的属性集合
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
AuthServiceProvider
在 AuthServiceProvider 的引导方法中添加 Passport :: routes()