【问题标题】:Laravel - Get the Authenticated usersLaravel - 获取经过身份验证的用户
【发布时间】:2018-11-26 15:47:38
【问题描述】:

我有一个导航栏,我尝试在其中显示一些内容,具体取决于用户是否经过身份验证。

所以我有一个登录表单,当我使用电子邮件/密码 axios.post('/login') 时,我会处理潜在的错误。

我的 UserController 中还有一个方法可以像文档说的那样通过 Auth::user() 获取经过身份验证的用户(如果有的话),但是这个方法总是返回一个空对象......

public function getUser() {
    $user = Auth::user();
    Log::info($user);
    return $user;
}

这个方法总是给我一个[2018-06-17 16:29:26] local.INFO:

但是奇怪的事情(比如电视节目)是我尝试走“/admin”路线的地方,我的中间件也使用“Auth::user()”来确定用户的角色是否是“用户”或 'admin','Auth::user()' 方法很好地返回了我的用户 ...

我卡住了... 请,如果有人遇到过同样的问题,请告诉我如何解决它,或者如果有人想查看更多代码,请告诉我,我很乐意向您展示更多证据。

谢谢,

【问题讨论】:

  • 显示你的路由声明,是否受web中间件组保护?

标签: php laravel authentication vue.js


【解决方案1】:

您必须向Log::info() 提供更多信息,例如$user->name、$user->id 的名称或ID。

您还可以使用该 id,使用它进行搜索并获取用户的信息。 您应该有一个适当的日志模式,模式 i 表示正确的日志记录。传递整个对象$user 将不起作用。

【讨论】:

  • 我试过了,但是我的 Auth::user() 是空的,所以我无法访问任何东西,我只是不知道为什么那个对象是空的。我登录我的应用程序,如果我尝试激活我的 authAdmin 中间件,我会在我的 Log::info(Auth::user) 中看到我的用户,但是当我在安装组件时通过 axios 从控制器调用方法时,我什么都没有这里
【解决方案2】:
public function getUser() {
    $user = Auth::user()->name;    
    return $user;
}

使用Auth::user()->name; 在导航栏上返回您的用户名。

【讨论】:

  • 嗯,我的 Log::info(Auth::user()) 正在处理我的中间件函数吗?
猜你喜欢
  • 2018-05-04
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 2019-05-19
相关资源
最近更新 更多