javascript - 如何基于 JWT token 登录后将用户重定向到另一个页面?

标签 javascript asp.net authentication asp.net-core jwt

我在 ASP.NET Core Web 应用程序中使用 JWT token 对用户进行身份验证。

身份验证过程分为以下步骤:

  1. 客户端使用参数登录名/密码向服务器 URL 发送 ajax 请求以获取访问 token
  2. 服务器获取请求并发送带有访问 token 和 token 类型的响应
  3. 客户端获取服务器响应并将 token 保存在 session 存储中,以便稍后使用 token 进行请求

    当客户端有 token 时,他应该将 token 类型和 token 添加到每个请求的 header 中,如以下示例(jQuery.ajax() header 部分):

    headers: { '授权' : tokenType + ' ' + token }

  4. 客户端将用户从登录页面重定向到主页。在 JavaScript 中,我可以使用以下代码来实现:

代码:

window.location.replace('[URL_TO_MAIN_PAGE_HERE]');

window.location.href = [URL_TO_MAIN_PAGE_HERE];

但是我有一个问题,我无法为上述请求设置 header 。

如果我使用访问 token 进行身份验证,如何在登录后将用户重定向到主页?

其他信息:

应用程序不是 SPA。

最佳答案

将 token 保存在浏览器的 session /本地存储中后,它将可用于向服务器发送任何进一步的“API”请求。当您请求页面时,通过执行 server.transfer/request.redirect/location.href 等,您无法提供任何类型的自定义 header 。

那么可用的选项是什么。

假设登录后,您将用户重定向到一个页面(使用任何方法),其中列出了一些实体。列表页面执行(或应该执行)向服务器发出 ajax 请求(加载时,在 header 脚本中)以获取数据。在此步骤中,您可以读取身份验证 token 并将其包含在请求中;服务器可以验证。

任何后续请求都将以相同的方式完成,每当您请求任何资源时,请在 http 请求中包含 token 。

如果您的 API 可以返回处理后的 html,那么您可以对其执行 GET 请求并传递身份验证 token 、检索 html 并将其包含在您的页面中...

关于javascript - 如何基于 JWT token 登录后将用户重定向到另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50288599/

相关文章:

authentication - 在 Mysql 5.7 中更新用户密码

javascript - 使用Jquery限制浏览器窗口高度不能小于200px?

javascript - 我没有并排显示我的文本和滚动图像?

javascript - 在 Chrome 调试器中编辑

c# - 可以在 asp.net 4.6 中进行 Roslyn 自动编译吗?

asp.net - 回收 ASP.NET 应用程序是否会将用户踢出去?

javascript - 如何实现 node.js WebSocket 支持?

html - 将文本框添加到 ASP.Net 菜单

authentication - 使用 Heroku Platform API 进行基本 HTTP 身份验证

Python:urllib2.HTTPError:HTTP 错误 401:未经授权