安装Passport
passport是一个单独的包,所以第一步是安装它。我将在这里总结这些步骤,但是您可以在文档中获得更深入的安装说明。
首先,使用Composer安装:
如果你使用的是低于5.5的Laravel版本,请添加Laravel\Passport\Pass portServiceProvider::class到config/app.php的providers数组。
Passport导入了一系列迁移,所以运行php artisan migrate来创建这些表,用于OAuth客户端,作用域以及令牌。
接着运行php artisan passport:install进行安装,它将为OAuth服务生成秘钥(storage/oauth-private.key 和 storage/oauth-public.key),将OAuth客户端插入数据库以获取我们的个人和密码授予类型令牌(稍后介绍)。
你需要导入Laravel\Passport\HasApiTokens特性到用户模型中,这将向每个用户添加与OAuth客户端和令牌相关的关系,以及一些与令牌相关的助手方法,接着在AuthServiceProvider的boot方法中添加Laravel\Passport \Passport::routes(),它将添加如下路由:
oauth/authorize
oauth/clients
oauth/clients/client_id
oauth/personal-access-tokens
oauth/personal-access-tokens/token_id
oauth/scopes
oauth/token
oauth/token/refresh
oauth/tokens
oauth/tokens/token_id
最后,看一下config/auth.php中的API守卫,默认情况下守卫使用令牌驱动(稍后介绍),现在改成passport驱动。
至此你拥有了一个健全的OAuth 2.0服务,现在你可以用php artisan passport:client创建客户端,然后你有一个API用于管理你的客户端和在/oauth下的可用token。
要保护Passport auth后的路由,添加auth:api到路由或者路由组,如13-28所示
为了对这些受保护的路由进行认证,你需要在Authorization头上传递一个token作为Bearer token(稍后介绍如何获取令牌),示例13-29展示使用Guzzle HTTP库发送请求的情况。
现在让我们仔细看看它是如何工作的。
Last updated