我有一个公共路径,任何用户都可以访问它.(/timeline).

推荐答案

您可以将保护传递给您的方法,以判断用户是否使用特定的保护登录.

$request->user('api');

EDIT

我只想扩展我最初的答案.

使用$request->user()与使用\Auth::user()完全相同.

当您检索经过身份验证的用户时,Laravel将默认配置文件auth.defaults.guard中的guard(新安装中为web).

所以当你拨打$request->user()时,实际上是$request->user('web').

当您使用auth:api时,Laravel将使用api guard作为默认值.

这就是为什么它在使用auth:api时有效,但在使用默认保护时无效.

为了解决您的问题,如果有Illuminate\Http\Request实例,您可以拨打$request->user('api'),或者直接使用Auth facade拨打\Auth::guard('api')->user().

Laravel相关问答推荐

Laravel中的策略对我不起作用,这是我的代码

如何在 Laravel 中获取特定月份的最后一个日期?

如何解决此 Backblaze B2 S3 兼容 API 错误?

将错误消息抛出并显示为关联数组

使用正则表达式 laravel 忘记缓存

Laravel - 出于某种原因,max 打破了我的查询

在 laravel 5.3 中截断的错误日志(log)

如何使用 Laravel 查询生成器在 WHERE 条件周围添加括号

Laravel:使用 Input::old 时 textarea 不会重新填充

Laravel 附加额外字段

在Laravel 5中通过ID和所有递归获取记录

在 Laravel Blade 中转义 vue.js 数据绑定语法?

Laravel Eloquent Pluck 不丢失密钥

如何在包中安排 Artisan 命令?

Laravel 验证 pdf mime

laravel 5.1 在没有 VM 重启的情况下看不到作业(job)文件的更改

Laravel/PHPUnit:断言 json 元素存在而不定义值

如何在 Laravel 中使用补丁请求?

Laravel 4 - 一个表单中有两个提交按钮,并且两个提交都由不同的操作处理

Eloquent的 attach/detach/sync 触发任何事件?