Laravel 5.3-5.4:$request->user(); 和 Auth::user();的区别

5
我正在审查我的系统上的一些代码逻辑,并想到了一些问题。在用户登录系统后,您可以使用$request->user();Auth::user();来获取用户对象。
我的问题是:
  1. 除了明显的差异之外,它们之间的关键区别是什么?
  2. 用户在两种情况下都从数据库中获取吗,还是其中一种从某个存储缓存中提取用户对象?
  3. 这两种情况是否都利用了passport的功能来从数据库获取用户?或者是从一个难以找到的神秘存储地拉取?
提前感谢, 干杯!

它们实际上是一样的。如果你不喜欢Laravel门面,可以选择Request方法。https://laravel.com/docs/5.4/authentication#retrieving-the-authenticated-user - bcmcfc
虽然这是一个很好的回答并且受到赞赏,但我仍然对他们如何访问数据库感到困惑。它们都在访问数据库吗?还是用户是从存储在缓存服务器端的某些内容中提取出来的? - Andre F.
1个回答

0

让我简要描述一下:

Auth::user(); 保存了用户登录应用程序时使用 Auth 的凭据或者说信息。

当用户成功登录后,它的凭据以 cookies 或者 sessions 的形式存储,并在注销后被销毁。

不,它并不是从数据库中提取的。已登录用户的详细信息存储在 session 中,并从那里提取。


如果您需要更多信息,请在评论区留言,我会相应地更新答案。 - Ali Rasheed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接