php小编小新带你探索使用Laravel Passport处理API认证,Laravel Passport是一种完善的OAuth2服务器实现,可帮助开发者轻松实现API认证,并提供了许多便捷功能。通过本文,你将了解如何使用Laravel Passport来管理API用户身份验证,保障API接口的安全性。
我们需要用以下命令来创建一个最新的 Laravel 应用,所以请打开终端执行:
1 |
|
Laravel Passport 可以在几分钟内为你的应用实现一个完整的 OAuth2 服务器。
1 |
|
Passport 的迁移会创建你的应用用来存储客户端和 Access Token 的表。
1 |
|
此命令会创建秘钥以用来生成安全的 Access Token。除此之外,它也会创建用来生成 Access Token 的 personal access 和 passWord grant:
1 |
|
执行完毕后,将 Laravel\Passport\HasApiTokens
trait 添加到你的 App\User
模型中。这个 trait 会为模型添加一系列助手函数用来验证用户的秘钥和作用域:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
接下来,你应该在 AuthServiceProvider
中的 boot
方法中调用 Passport::routes
方法。这个方法会注册必要的路由去颁发访问令牌,撤销访问令牌,客户端和个人令牌:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
最后,在 config/auth.php
配置文件中,你应该设置 api
权限认证守卫的 driver
选项为 passport
。当需要权限认证的 API 请求进来时会告诉你的应用去使用 Passport's 的 TokenGuard
。
1 2 3 4 5 6 7 8 9 10 |
|
Laravel 提供了 routes/api.php
文件来给我们编写 web 路由,因此在这个文件添加新的路由即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
最后一步我们必须创建新的控制器和 api 方法。因此我们先创建 AuthController
并且把代码写进去:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
|
现在我们已经准备好运行我们的示例了,运行下面的命令以快速运行:
1 |
|
现在,我们可以使用 REST 客户端工具来简化测试,例如 Postman。我执行测试你可以看见以下的截图。
你要为这个 API 设置以下两个头信息:
1 2 |
|
注册
登录
登出
用户
感谢阅读!
GitHub
Postman collections
以上是使用 Laravel Passport 处理 API 认证的详细内容。更多信息请关注PHP中文网其他相关文章!