在Ubuntu上使用Laravel Passport进行API认证,你需要遵循以下步骤:
安装Laravel Passport
首先,确保你已经安装了Laravel。如果还没有安装,可以通过Composer创建一个新的Laravel项目:
composer create-project --prefer-dist laravel/laravel your-project-name
然后,进入项目目录:
cd your-project-name
接下来,使用Composer安装Laravel Passport:
composer require laravel/passport
运行迁移
安装Passport之后,需要运行迁移来创建必要的数据库表:
php artisan migrate
安装Passport
在迁移完成后,你需要通过Artisan命令行工具来安装Passport:
php artisan passport:install
这个命令会创建两个加密的密钥,这些密钥用于生成访问令牌。确保将生成的client_id和client_secret保存好,因为它们在注册应用程序时需要使用。
配置Passport
在config/auth.php文件中,将默认的认证驱动更改为Passport:
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
同时,确保你的用户模型(通常是App\Models\User)使用了HasApiTokens trait:
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
// ...
}
运行Passport服务器
为了使Passport生效,你需要启动一个授权服务器。这可以通过Artisan命令来完成:
php artisan passport:serve --host=0.0.0.0 --port=8000
这个命令会启动一个监听在8000端口的授权服务器。你可以根据需要更改主机和端口。
测试Passport
现在,你可以开始测试Passport了。你可以使用Postman或者任何其他HTTP客户端来发送请求到你的Laravel应用程序,并使用Passport提供的端点来获取访问令牌。
例如,你可以发送一个POST请求到http://localhost:8000/oauth/token,包含用户的电子邮件和密码,以及客户端ID和客户端密钥来获取访问令牌。
使用访问令牌
一旦你有了访问令牌,你就可以在请求头中使用它来访问受保护的路由了。将访问令牌添加到请求头的Authorization字段中,格式如下:
Authorization: Bearer your-access-token
现在,你可以发送请求到你的Laravel应用程序的API端点,它们将会验证访问令牌,并返回相应的数据。
请注意,这些步骤是在本地开发环境中设置Passport的基本指南。在生产环境中,你需要考虑更多的安全措施,比如HTTPS、OAuth客户端的正确配置、访问令牌的刷新机制等。