【问题标题】:How to require a jwt in front end如何在前端要求 jwt
【发布时间】:2019-03-05 10:44:54
【问题描述】:

我知道一旦用户的凭据通过身份验证,服务器会创建 jwt 并将其发送回前端,然后将令牌存储在浏览器本地存储中。我的问题是:我如何使用纯 javascript 在呈现他想要访问的页面之前检查用户是否具有有效的 jwt 并在 jwt 无效的情况下禁止他?

【问题讨论】:

  • how can i use pure javascript to check if user has a valid jwt 如果javascript没有在服务器上运行,则不能。检查令牌是否有效是服务器的角色,而不是客户端。您需要使用令牌查询服务器,如果授权,则服务器发出 200 http 代码,如果未授权,则 403 为授权,但逻辑需要在服务器端实现。
  • 稍微澄清一下:验证 jwt 实际上是身份验证,而不是授权。对于无效令牌,您返回 401(混淆地命名为“未授权”)。
  • 假设用户尝试访问需要在我的 rest api 中使用 jwt 的 url。如何获取此令牌并将其发送到服务器?如果服务器返回 401 或者用户甚至没有令牌(他没有登录),我怎么能重定向到另一个页面,因为 rest api 中的后端不呈现模板?我没有使用任何 js 框架或 lib

标签: javascript authentication jwt web-frontend


【解决方案1】:

您必须假设客户方面的任何事情都不受客户保护。这意味着您要呈现的任何内容——如果它存储在客户端的机器上——不应该是敏感信息。你的 API 就是一个例子,这就是它通常存储在后端的原因。但是,如果您确实想从服务器渲染页面,请查看服务器端渲染 (SSR)。

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2020-04-11
    • 2019-01-29
    • 2021-12-12
    • 2023-03-19
    • 2020-03-23
    • 2021-11-23
    • 2021-10-15
    • 2019-04-12
    相关资源
    最近更新 更多