gpt4 book ai didi

javascript - Html vs JSP - 获取请求 header token 值

转载 作者:太空狗 更新时间:2023-10-29 15:10:24 26 4
gpt4 key购买 nike

我正在开发 Java 应用程序。前端将是 Angular2

如果我尝试打开我的应用程序主页(index.htmlweb.xml 中配置为默认页面)。访问 URL 应该是 http://localhost:8080/MyWebApp .

然后我进入了一个标准组织的登录页面进行身份验证。如果身份验证成功,将在 请求 header 中设置 HTTP 授权 token ,最后控制显示我的应用程序主页。

如果我使用jsp,我可以获得请求 header

String authHeader = request.getHeader("authorization");          
out.println("<h2>HTTP Authorization header:</h2>");

if (authHeader == null) {
out.print("No authorization header");
} else {
out.print("<textarea readonly id='authHeader' rows=\"5\" cols=\"80\">" + authHeader + "</textarea>");
}

但我们使用 html 作为前端,因为 angular 2

所以对于我的场景,我怎样才能得到请求 header token

如果不清楚,请不要犹豫编辑我的问题。

最佳答案

You can't get a value of a header from client-side JavaScript .唯一的异常(exception)是 User-Agent 和 Referrer header ,因为浏览器在 documentnavigator 对象中提供值。

您说您正在开发一个带有 Angular 2 前端的 Java 应用程序,而其他一些应用程序提供了一个 token (可能有助于指定这是否是标准的东西,例如 OAuth2)。我会假设它是一个自定义 token 。我相信你还意味着你有一些服务器端组件,一个 servlet。

您可以做的是使用 servlet(甚至 JSP)实现身份验证,然后重定向回 Angular 2 前端应用程序,将 URL 中的 token 作为查询参数传递。 URL is easy to read in Angular 2 .然而这是not very secure, even if you use类似 JWT 的东西.作为 URL 的替代方法,您可以使用 Set-Cookie header ,然后从 Angular 读取 cookie。

几乎安全的是使用服务器端(servlet 甚至 JSP)对用户进行身份验证。然后创建一个一次性 token ,在重定向到您的 HTML 页面时将其作为查询参数传递到 URL 中。然后在对服务器的调用中再次使用一次性 token ,以使用来自 Angular 2 的适当 REST 调用以及请求和响应来检索真实的身份验证 token 。

取决于您拥有多少控制权以及身份验证应用程序使用何种身份验证,您可能需要查看 OAuth2.它处理大量不同的身份验证场景。特别是 OAuth2 implicit grant flow用于验证来自仅客户端应用程序的用户。即使您不会使用它,它也会给您一些想法。

关于javascript - Html vs JSP - 获取请求 header token 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com