VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > PHP >
  • php教程之使用Laravel集成JWT认证开发RestfulApi

本站最新发布   C#从入门到精通
试听地址  
https://www.xin3721.com/eschool/CSharpxin3721/

在使用跨平台应用程序时, API 是一个非常不错的选择。 除了网站,您的产品可能还有 Android 和 iOS 应用程序。 在这种情况下, API 也是同样出色的,因为您可以在不更改任何后端代码的情况下编写不同的前端。 使用 API 时,只需使用一些参数点击 GET , POST 或其他类型的请求,服务器就会返回 JSON (JavaScript Object Notation) 格式的一些数据,这些数据由客户端应用程序处理。

说明

我们先写下我们的应用程序详细信息和功能。 我们将使用 JWT 身份验证在 laravel 中使用 restful API 构建基本用户产品列表。

A User 将会使用以下功能

  • 注册并创建一个新帐户
  • 登录到他们的帐户
  • 注销和丢弃 token 并离开应用程序
  • 获取登录用户的详细信息
  • 检索可供用户使用的产品列表
  • 按 ID 查找特定产品
  • 将新产品添加到用户产品列表中
  • 编辑现有产品详细信息
  • 从用户列表中删除现有产品

A User 必填

  • name
  • email
  • password

A Product 必填

  • name
  • price
  • quantity

创建新的项目

通过运行下面的命令,我们就可以开始并创建新的 Laravel 项目。

composer create-project --prefer-dist laravel/laravel jwt

这会在名为 jwt 的目录下创建一个新的 Laravel 项目。

配置 JWT 扩展包

我们会使用 tymondesigns/jwt-auth 扩展包来让我们在 Laravel 中使用 JWT。

安装 tymon/jwt-auth 扩展包

让我们在这个 Laravel 应用中安装这个扩展包。如果您正在使用 Laravel 5.5 或以上版本,请运行以下命令来获取 dev-develop 版本的 JWT 包:

1
composer require tymon/jwt-auth:dev-develop --prefer-source

  

如果您正在使用 Laravel 5.4 或以下版本,那么要运行下面这条命令:

1
composer require tymon/jwt-auth

  

对于 Laravel 版本 低于 5.5 的应用,您还要在 config/app.php 文件中设置服务提供者和别名。

1
2
3
4
5
6
7
8
9
10
11
'providers' => [
 ....
 Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
 ....
],
'aliases' => [
 ....
 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,
 'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory',
 ....
],

  

如果您的 Laravel 版本为 5.5 或以上,Laravel 会进行「包自动发现」。

发布配置文件

对于 5.5 或以上版本 的 Laravel,请使用下面这条命令来发布配置文件:

1
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

  

对于之前 之前版本的 Laravel,那么应该运行下面这条命令:

1
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

  

上面的命令会生成 config/jwt.php 配置文件。除去注释部分,配置文件会像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
return [
 'secret' => env('JWT_SECRET'),
 'keys' => [
 'public' => env('JWT_PUBLIC_KEY'),
 'private' => env('JWT_PRIVATE_KEY'),
 'passphrase' => env('JWT_PASSPHRASE'),
 ],
 'ttl' => env('JWT_TTL', 60),
 'refresh_ttl' => env('JWT_REFRESH_TTL', 20160),
 'algo' => env('JWT_ALGO''HS256'),
 'required_claims' => [
 'iss',
 'iat',
 'exp',
 'nbf',
 'sub',
 'jti',
 ],
 'persistent_claims' => [
 // 'foo',
 // 'bar',
 ],
 'lock_subject' => true,
 'leeway' => env('JWT_LEEWAY', 0),
 'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED'true),
 'blacklist_grace_period' => env('JWT_BLACKLIST_GRACE_PERIOD', 0),
 'decrypt_cookies' => false,
 'providers' => [
 'jwt' => Tymon\JWTAuth\Providers\JWT\Lcobucci::class,
 'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class,
 'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class,
 ],
];
相关教程