【问题标题】:Laravel Sanctum API Token SecurityLaravel Sanctum API 令牌安全性
【发布时间】:2021-04-04 07:32:55
【问题描述】:

你好 SO 的伟大人物!

希望大家今天过得愉快!

首先,我是 SPA 新手,如果我的英语不好,我很抱歉 但我会尽力解释我现在遇到的问题

我正在创建一个简单的 SPA,它使用 Sanctum API 令牌作为身份验证,使用 Vue 作为前端

在创建了这个 SPA 的简单 Auth 机制(例如:Route guard、errors 等)之后,我想到了一个简单的想法

如果我复制一个令牌,然后将其插入另一个浏览器,服务器会验证我吗?

制作步骤:

  • 首先,我登录 Brave 浏览器,服务器返回授权令牌,令牌存储在 Brave localStorage 中,前端部分将我重定向到 '/home' 路由,一切正常,就像简单的身份验证一样

  • 然后,我打开火狐浏览器,将token和token_value放入之前用Brave浏览器登录得到的localStorage中

  • 我访问了 '/home' 路由,该路由仅适用于经过身份验证的用户,服务器接受我。

我在文档中找不到有关此问题的信息

如何解决这个问题?

【问题讨论】:

  • 这很正常。你什么意思?您的令牌经过一次身份验证。
  • 这就像问如果有人复制用户名和密码,服务器会验证吗?令牌用于授权,它们就是这样工作的。如果您想将其限制为用于身份验证的浏览器,也许设置 cookie 会有所帮助,每个浏览器都有

标签: laravel-sanctum


【解决方案1】:

Laravel 文档指出,“您不应使用 API 令牌来验证您自己的第一方 SPA。相反,应使用 Sanctum 的内置 SPA 身份验证功能”。

您可能想在此处阅读更多关于 Tokens 和 Cookies 的信息以进行身份​​验证。 Token Authentication vs. Cookies

只要您发送带有有效令牌的请求,您就可以通过身份验证。不管是哪个浏览器。它适用于任何能够发出请求的媒体。

如果是 SPA,请使用 Sanctum SPA 身份验证机制。

不确定这是否能回答您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 2021-07-02
    • 2020-07-04
    • 2015-05-11
    • 2021-02-05
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多