Laravel5.5 Passport 的路由问题

文档中介绍在app/Providers/AuthServiceProvider.php文件中添加路由 Passport::routes
我只是想做前后端html/js =>php 的用户认证,登陆用户才能得到数据,应该就是用户信息换取token的动作,但是php artisan route:list打印出非常多oath的路由,请问这些路由是公开的吗,会被恶意攻击吗

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4
张浩浩浩浩

为什么不贴上代码,看一看。更直观一些

5年前 评论

我也想要问这个问题。我想使用passport做api。因为在boot()内注册了passport的路由。此后项目多出来n多个passport自带的路由,有的路由我并不想使用它,而且自带的返回的数据格式,跟我想要数据格式相去胜远。楼主解决了吗?这个问题

5年前 评论
mengdodo

@noecs

    public function boot()
    {
        $this->registerPolicies();

 //默认令牌发放的有效期是永久
       Passport::tokensExpireIn(Carbon::now()->addHours(1));
        Passport::refreshTokensExpireIn(Carbon::now()->addHours(3));
//如下代码限制我需要开放的接口
        Passport::routes(function (RouteRegistrar $router) {
            //对于密码授权的方式只要这几个路由就可以了
            $router->forAccessTokens();
       },['prefix' => 'api/oauth']); //
    }
5年前 评论
xiaopi

Passport::routes提供一个回调函数,可以按需重写路由。我只用到了客户端授权/密码授权,所以这样写即可

    # App\Providers\AuthServiceProvider
    public function boot()
    {
        $this->registerPolicies();

        //Passport配置
        Passport::routes(function (RouteRegistrar $router) {
            //隐藏其他非必需路由,增强安全性
            //$router->forAuthorization();
            $this->forAccessTokens();
            //$router->forTransientTokens();
            //$router->forClients();
            //$router->forPersonalAccessTokens();
        });

        Passport::tokensExpireIn(now()->addDays(15));

        Passport::refreshTokensExpireIn(now()->addDays(30));

    }

    protected function forAccessTokens()
    {
        app('router')->post('/token', [
            'uses' => 'AccessTokenController@issueToken',
            'middleware' => 'throttle:120,1',
        ]);
    }
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!