是否可以在Laravel Passport中更改/修改预定义路线?

AnD*_*AnD 6 laravel laravel-passport laravel-5.7

你知道,Laravel Passport预定义的路线如下:

php artisan route:list
+--------+----------+-----------------------------------------+------+---------------------------------------------+--------------+
| Domain | Method   | URI                                     | Name | Action                                      | Middleware   |
+--------+----------+-----------------------------------------+------+---------------------------------------------+--------------+
|        | GET|HEAD | /                                       |      | Closure                                     | web          |
|        | POST     | oauth/authorize                         |      | ...\ApproveAuthorizationController@approve  | web,auth     |
|        | GET|HEAD | oauth/authorize                         |      | ...\AuthorizationController@authorize       | web,auth     |
|        | DELETE   | oauth/authorize                         |      | ...\DenyAuthorizationController@deny        | web,auth     |
|        | GET|HEAD | oauth/clients                           |      | ...\ClientController@forUser                | web,auth     |
|        | POST     | oauth/clients                           |      | ...\ClientController@store                  | web,auth     |
|        | PUT      | oauth/clients/{client_id}               |      | ...\ClientController@update                 | web,auth     |
|        | DELETE   | oauth/clients/{client_id}               |      | ...\ClientController@destroy                | web,auth     |
|        | GET|HEAD | oauth/personal-access-tokens            |      | ...\PersonalAccessTokenController@forUser   | web,auth     |
|        | POST     | oauth/personal-access-tokens            |      | ...\PersonalAccessTokenController@store     | web,auth     |
|        | DELETE   | oauth/personal-access-tokens/{token_id} |      | ...\PersonalAccessTokenController@destroy   | web,auth     |
|        | GET|HEAD | oauth/scopes                            |      | ...\ScopeController@all                     | web,auth     |
|        | POST     | oauth/token                             |      | ...\AccessTokenController@issueToken        | throttle     |
|        | POST     | oauth/token/refresh                     |      | ...\TransientTokenController@refresh        | web,auth     |
|        | GET|HEAD | oauth/tokens                            |      | ...\AuthorizedAccessTokenController@forUser | web,auth     |
|        | DELETE   | oauth/tokens/{token_id}                 |      | ...\AuthorizedAccessTokenController@destroy | web,auth     |
+--------+----------+-----------------------------------------+------+---------------------------------------------+--------------+
Run Code Online (Sandbox Code Playgroud)

是否可以修改该路线?例如oauth/authorize成为api/v1/oauth/authorize

如果有,怎么样?

我一直在寻找答案......

Egr*_*tos 12

是的.您可以在Passport::routes()方法中声明自己的路线.

将其包含在文件的boot()方法中app/Providers/AuthServiceProvider.

应用程序/提供者/ AuthServiceProvider.php

public function boot()
{
    Passport::routes(null, ['prefix' => 'api/v1/oauth']);
}
Run Code Online (Sandbox Code Playgroud)


Pro*_*sor 7

该方法似乎routes已被删除(Passport 11.x)。

现在为了执行此操作,您需要发布 Passport 配置文件并将path属性设置为所需的值:api/v1/oauth

php artisan vendor:publish --tag=passport-config
Run Code Online (Sandbox Code Playgroud)
// config/passport.php

<?php

return [
    ...

    'path' => 'api/v1/oauth',
];
Run Code Online (Sandbox Code Playgroud)

我无法在文档中找到此信息。我通过查看源代码弄清楚了这一点。这是进一步参考的链接。