首页 文章

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

提问于
浏览
0

我使用JWT令牌来验证ASP.NET Core Web App中的用户 .

身份验证过程包括以下步骤:

  • 客户端使用params login / password向服务器url发送ajax请求以获取访问令牌

  • 服务器获取请求并发送具有访问令牌和令牌类型的响应

  • 客户端获取服务器响应并将令牌保存在会话存储中,以便稍后使用令牌进行请求

当客户端有一个令牌时,他应该将令牌类型和令牌添加到每个请求的头部,如下面的示例(jQuery.ajax()headers部分):

Headers :{'授权':tokenType''标记}

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

码:

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

要么

window.location.href = [URL_TO_MAIN_PAGE_HERE];

但是我有一个问题,我 can't 为上面的请求设置了一个 Headers .

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

Additional info:

应用不是SPA .

1 回答

  • 1

    将令牌保存在浏览器的会话/本地存储中后,它将可用于服务器的任何其他“API”请求 . 当您通过执行server.transfer / request.redirect / location.href等请求页面时,您无法提供任何类型的自定义标头 .

    那么可用的选项是什么 .

    让我们说登录后,你将用户重定向到一个页面(使用任何方法),其中列出了一些实体 . 列表页面向服务器(在加载时,在头文件脚本中)执行(或应该)ajax请求以获取数据 . 在此步骤中,您可以读取身份验证令牌并包含在请求中;服务器可以验证 .

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

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

相关问题