如果一个接口游客和登录用户都可以访问呢?

$api->group([
        'middleware' => 'api.throttle',
        'limit' => config('api.rate_limits.access.limit'),
        'expires' => config('api.rate_limits.access.expires'),
    ], function ($api) {
        // 游客可以访问的接口

        // 需要 token 验证的接口
        $api->group(['middleware' => 'api.auth'], function($api) {
            // 当前登录用户信息
            $api->get('user', 'UsersController@me')
                ->name('api.user.show');
        });
    });

比如说有一个动态列表的页面,游客不需要登录也可以浏览别人发布的动态,但是当评论、点赞等操作时就需要登录后才能操作了;还有就是登录状态下访问这个动态列表页面需要返回当前用户的评论、点赞等数据(游客状态下是没有的)。
这种情况一般是如何处理的呢?
我想的是,当用户访问当前页面的时候判断 header 里面有无 token 或者利用 Auth::user()方法获取当前登录用户。如果是未登录返回未登录时的数据,如果登录则返回登录的数据,可能有些不太好,但不知道有没有其他更好的办法。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
liyu001989
最佳答案
  • 第一种可以根据用户是否传了有效token,也就是用户是否登录,返回不同的数据,多几个字段;
  • 第二种可以是一个单独的接口,请求一批数据,我是否点赞,我是否关注;
  • 第三种参考一下 博客:编写更具有描述性的 RESTful API 这篇帖子,include=is_like。当前用户的评论可以是 include=myReplies ? 登录了有数据,没登录是空数组

你参考一下

5年前 评论
讨论数量: 1
liyu001989
  • 第一种可以根据用户是否传了有效token,也就是用户是否登录,返回不同的数据,多几个字段;
  • 第二种可以是一个单独的接口,请求一批数据,我是否点赞,我是否关注;
  • 第三种参考一下 博客:编写更具有描述性的 RESTful API 这篇帖子,include=is_like。当前用户的评论可以是 include=myReplies ? 登录了有数据,没登录是空数组

你参考一下

5年前 评论

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