【问题标题】:Using Laravel passport for api and web routes将 Laravel 护照用于 api 和 web 路由
【发布时间】:2017-11-06 08:51:28
【问题描述】:

作为前言,我正在学习 Laravel、Javascript 和 OAuth。

我想要的是让用户能够登录,获取授权密钥,将密钥(连同过期日期)保存在会话区域中,然后使用此密钥作为路由的“守卫”(即返回视图)。

按照此处的说明操作(它使用 Laravel 护照和 OAuth):

https://www.youtube.com/watch?v=D7gUz3RcTm8&t=18s https://mattstauffer.co/blog/introducing-laravel-passport

https://scotch.io/@neo/getting-started-with-laravel-passport

我几乎用了一个首先请求身份验证的 Javascript 客户端。得到它之后,我的理解是服务器返回的信息(批准的 KEY 和过期)确实可以存储在会话中。不幸的是,我没有看到如何使用它来保护路线。

我错过了什么吗?我是否使用了错误的工具来完成我想要完成的任务?

当执行“php artisan route:list”时,下面会返回以下内容:

| Domain | Method   | URI                                     | Name | Action                                                                     | Middleware   |
+--------+----------+-----------------------------------------+------+----------------------------------------------------------------------------+--------------+
|        | GET|HEAD | /                                       |      | Closure                                                                    | web          |
|        | GET|HEAD | api/user                                |      | Closure                                                                    | api,auth:ap

|        | DELETE   | oauth/personal-access-tokens/{token_id} |      | \Laravel\Passport\Http\Controllers\PersonalAccessTokenController@destroy   | web,auth     |
|        | GET|HEAD | oauth/scopes                            |      | \Laravel\Passport\Http\Controllers\ScopeController@all                     | web,auth     |
|        | POST     | oauth/token                             |      | \Laravel\Passport\Http\Controllers\AccessTokenController@issueToken        | throttle     |
|        | POST     | oauth/token/refresh                     |      | \Laravel\Passport\Http\Controllers\TransientTokenController@refresh        | web,auth 

|

“api”路由和“web”路由有什么区别?什么是油门? API 路由是否只返回 JSON?

TIA

【问题讨论】:

    标签: laravel api oauth routes laravel-passport


    【解决方案1】:

    “api”路由和“web”路由有什么区别?

    webapi 中间件是组中间件,您可以在http\kernel 中找到它们的定义。 web 将启用 Web 应用程序的某些方面,例如 CookieSessionCSRF token。而api 只检查throttle 和绑定modelcontroller

    什么是油门?

    throttle 中间件用于限制调用路由的次数。

    API 路由只返回 JSON?

    这取决于你。你可以返回你想要的。

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 2019-01-05
      • 2017-05-27
      • 2020-09-09
      • 2019-09-13
      • 2019-06-23
      • 2017-10-07
      • 2021-05-03
      • 2019-07-03
      相关资源
      最近更新 更多