繁体   English   中英

laravel 圣所,从 cookie 中识别用户

[英]laravel sanctum, identify user from cookie

我是 larravel 新手,使用 laravel sanctum 构建应用程序,session 驱动程序是 cookie。

laravel 应用程序部署在球童后面,我启用了球童日志。 日志格式是json,我看到它包含每个请求头,并且记录了cookie信息,所以我想知道我是否可以通过cookies识别用户,我尝试解码cookie但失败,有什么方法可以通过曲奇饼?

这是日志格式

{
    "level": "info",
    "ts": 1648864255.073147,
    "logger": "http.log.access.log5",
    "msg": "handled request",
    "request": {
        ...
        "headers": {
            "Accept": [
                "application/json, text/plain, */*"
            ],
            "X-Xsrf-Token": [
                ".....yJpdiI6Ijh6bjVZMXUvOFlkR3V1U....."
            ],

            "Cookie": [
                "XSRF-TOKEN=...eyJpdiI6Ijh6bjVZMXUvOFlkR3V1UE....9"
            ]
        }
    },
    "resp_headers": {
        "Set-Cookie": [
            "XSRF-TOKEN=hbHVlIjoiOHN6L1BXa2N; expires=Sat, 02-Apr-2022 03:50:55 GMT; Max-Age=7200; ...",
            "card_session=2IzTC9BbTEydW5NUDEvd016aVhlOWp; expires=Sat, 02-Apr-2022 03:50:55 GMT; Max-Age=7200; ...",
            "hkx3q7J7TeLVf3hV9XSaDiwScSS7rUIPP7kcge7f=eyJpdiI6RzlOeEN5eUhxUVE4OUZpMkFmSmYSIsInRhZyI6IiJ9; expires=Sat, 02-Apr-2022 03:50:55 GMT; Max-Age=7200; ..."
        ],
        ..
    }
}
``

我的工作设置

  • laravel 应用程序已打开:http://localhost:8100
  • Vue 应用开启:http://localhost:5173

我的环境:

SANCTUM_STATEFUL_DOMAINS=localhost:5173
SESSION_DRIVER=cookie
SESSION_LIFETIME=120
SESSION_DOMAIN=.localhost

我真的很想知道为什么您需要从 cookie 中了解用户。

但是因为您是 laravel 的新手,所以我认为您将 laravel sanctum 用作身份验证器完全错了。

当使用 laravel sanctum 时,它将生成令牌以用作您的下一个 API 请求的不记名令牌。 所以在这里你应该做什么

  1. 登录并获取用户数据和令牌
  2. 将令牌存储在前端,并将其用作下一个请求的不记名令牌。
  3. 注销并销毁令牌。

用户数据可以在 laravel 后端的任何地方使用

Auth::user()

或者,如果您只需要用户 ID,则使用

Auth:id()

如果您不希望未经身份验证的用户使用您的端点,请不要忘记使用身份验证中间件限制您的端点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM