经过前面 OAuth 系列 和 JWT(JSON Web Token) 的铺垫;
终于可以开始本篇 Laravel 教程了;
如果对 OAuth 和 JWT 还不是很了解;
建议先出门左转阅读上面链接中的系列文章

我们先来回顾一下之前讲的 OAtuh 的四个角色;

  1. 资源服务器(resource server):github 服务器
  2. 授权服务器(authorization server):github 服务器
  3. 资源所有者(resource owner):用户你
  4. 客户端(client):第三方白俊遥博客

资源服务器(resource server)和授权服务器(authorization server)我们统称为 server ;
server 提供 OAuth 的认证服务;
client 则是使用 OAauth 服务;
在 PHP 社区中有一个以开发高质量扩展包著称的组织 league ;
他们提供了两个扩展包 oauth2-server 和 oauth2-client ;
分别实现了 server 和 client 服务;
Laravel 官方在 oauth2-client 的基础上开发了 socialite 用于实现 OAuth 第三方登录功能;
在 oauth2-server 基础上开发了 Passport 用于实现 OAuth 的认证服务;

Passport 提供了以下功能:

  1. 管理 clients
  2. OAuth 的四种授权类型
  3. 个人访问令牌 (personal access tokens)
  4. 管理令牌作用域 (scope)

铺垫完毕下面正式进入 Passport 环节;
Passport 默认没有安装;
使用前需要先 require 引入包;

composer require laravel/passport
Bash

运行迁移生成表:

php artisan migrate
Bash

迁移命令会生成如下表:

表名 作用
oauth_clients 管理 clinet , 对应于前面的例子中的 白俊遥博客
oauth_auth_codes 管理授权码模式 (Authorization Code) 中的 code
oauth_access_tokens 管理用于认证的 access_token
oauth_refresh_tokens 管理用于刷新 access_token 的 refresh_token
oauth_personal_access_clients 用于 personal access token

Passport 提供了 3 个命令;

  1. 生成用于加密的 key
php artisan passport:keys
Bash

执行后会在 storage 目录下生成 key 文件