【发布时间】:2019-12-27 06:07:51
【问题描述】:
我正在创建一个小众社区网站+论坛,用户可以在其中注册、登录、创建帖子并互相关注。
我的技术堆栈由 Laravel 中的后端 API(使用 Laravel 护照)和 Vue.js / Nuxt 中的前端组成。
我可以通过 Postman 访问所有 API,在此我调用 http://localhost:8000/oauth/token 来请求令牌 https://laravel.com/docs/master/passport#requesting-password-grant-tokens 然后随后,我使用提供的 access_token / Bearer 令牌调用 API,例如 http://127.0.0.1:8000/api/v1/tags
我的问题是,我是否需要一个完整的 oauth 流程——我的前端将无限期地需要访问 Laravel 中的后端 API/数据,但是客户端如何在不通过 2-way 的情况下访问数据与每个用户会话握手,这似乎有点矫枉过正? 我需要Password Grant Token、Implicit Grant Token、Personal Access Token 还是别的什么? 如何将我的前端 javascript 客户端“列入白名单”,同时在一定程度上保护我的数据免遭恶意使用?另外,如何使用 Passport 对不同类型的 API 请求进行身份验证?
密码授予令牌是否适用于所有这些......我在 API 中有 3 大类可用的数据:
- 类型 1:完全开放,无身份验证,不绑定到用户:示例:
GET /api/tags - API that gets all tags, this should not require authentication + authorization. This API would be used to display all tags on the /tags page, for example.
- 类型 2:仅限管理员的端点:完全关闭,任何人都无法使用,但对我(管理员)而言。示例:
POST / PATCH / DELETE /api/tags - APIs that create / update / delete (global) tags, these should only be accessible by me (Admin)
GET /api/users - should only be accessible by me (Admin)
- 类型 3:用户特定端点,仅对登录用户可用(当然还有管理员)。示例:
POST / PATCH / DELETE /api/user/1/settings - APIs that create / update / delete (user-specific) data, these should only be accessible by a logged-in user, and by me (Admin).
密码授予令牌是否适用于所有这些?
【问题讨论】:
标签: php laravel laravel-5 access-token