【问题标题】:Make user class in laravel without a database在没有数据库的情况下在 laravel 中创建用户类
【发布时间】:2016-01-18 18:59:02
【问题描述】:

我正在使用 Laravel 5.1 从 api 检索数据并将其显示在网站中。

每次我发送任何带有 JWT 令牌的请求时,该 api 都会返回身份验证用户。

当用户登录一次后,我会在每个请求中发送令牌。

我想要一种可以在每个视图中检查身份验证用户及其详细信息的方法。

1) 如何设置对 User 类的响应,以便稍后在视图中将其用作外观?

2) 如何找回授权用户?

3) 如何判断是否有auth用户?

响应在 Json 中

  "feed": {...}
  "auth": {
    "id": 1,
    "name": "Hetu Nandu",
    "title": "Student",
    "kp": 43,

  }

【问题讨论】:

    标签: php oop laravel laravel-5


    【解决方案1】:

    Auth::user() 的调用会返回当前经过身份验证的用户。由于您想通过远程用户存储重新使用现有的身份验证功能,您需要做几件事。

    首先,您需要一个用于身份验证的 User 类。它需要实现Authenticatable接口。您需要的该接口的唯一方法是 getAuthIdentifier() - 它应该返回给定用户的唯一标识符。此标识符保存在会话中,稍后用于为后续请求重新加载使用过的数据。您可以返回 JWT 令牌

    接下来,您需要在 Laravel 中对用户进行身份验证。你可以这样做

    Auth::login($user)
    

    这会将用户的标识符存储在会话中。

    最后,您需要一种为后续请求加载用户数据的方法。您需要实现自定义用户提供程序——这相当简单。您可以在文档中找到示例:https://laravel.com/docs/5.1/authentication#adding-custom-authentication-drivers

    【讨论】:

    • 那么方法中传入的$user就是token?
    • <?php namespace App; use Illuminate\Auth\Authenticatable; class User { use Authenticatable; public function getAuthIdentifier() { return Request::cookie('token'); } }
    • 必须是用户对象。
    • 所以我可以使用 Auth::login($user) 登录用户,但我仍然遇到用户提供程序的问题。如果我是对的,这个类将从响应中提取数据并将其提供给 auth 类,对吗?我应该使用哪种方法来处理我的情况?我在这里感觉自己像个真正的菜鸟:|
    • 你使用的API不提供一些客户端库吗?如果不看看 guzzle 库
    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 2011-07-13
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多