问题标签 [http-token-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1696 浏览

node.js - 从完整的响应中触发大文件下载

问题

我有一个 Node.js 端点,可以在使用以下命令访问时正确触发任意大的文件下载:

其中result转换流responseExpress 对象

这在直接访问 Chrome、Firefox、Internet Explorer 等中的端点时工作正常。问题是由于在启用基于令牌的身份验证时试图命中端点而产生的。

从用户的角度来看,当他们点击一个按钮时,就会下载一个文件。

如何使用请求标头中的正确身份验证令牌使按钮点击此端点并导致文件被下载?

一些可能的方法的头脑风暴

  1. 当用户单击按钮时,它会触发一个由 redux-api-middleware 处理的操作,该操作将GET请求发送到端点(身份验证令牌自动包含在请求中)。该中间件将响应保存在一个变量中,该变量由 React 组件获取。在这个 React 组件中,如果正在使用的浏览器(即 Chrome 和 Opera)支持流,response.body则将存在,因此您可以执行以下操作。

    使用这种方法,如果不支持流的浏览器接收到数据,我需要研究如何处理数据。

  2. 当用户点击按钮时,它会触发一个动作,通过 reducer 将端点保存到 Redux 存储中,这会触发 React 组件创建一个自动点击的锚标记。

    endPoint用文件响应的端点在哪里。

    此方法在禁用身份验证时有效。当重新启用身份验证时,必须以某种方式将身份验证令牌注入到锚标记的请求标头中。

  3. 与 #2 类似,通过构建带有内置身份验证令牌的 HTTP 请求来模拟锚点单击。
  4. 结合#1 和#2 中的元素,当用户单击按钮时,会触发一个动作,向端点发送GET请求,该端点返回第二个临时不安全端点,该端点返回实际的文件响应。将此临时不安全端点传递给#2 中的锚标记。
  5. 以某种方式将响应重定向到新的选项卡/窗口。
  6. 将身份验证令牌作为 URL 参数传递(这是一个安全问题),然后使用 #2。
  7. 创建一个新端点,该端点生成并返回一个新的临时一次性仅下载令牌。使用这个新端点获取临时令牌,作为 URL 参数通过 #2 传递到原始端点。
0 投票
2 回答
1176 浏览

authentication - 使用 Azure AD B2C 对 Web 应用程序和 Web API 进行基于令牌的身份验证

场景: Web 应用程序和 Web API 都需要从服务器端进行身份验证和保护。

要求: Web 应用程序为浏览器提供内容,浏览器应直接调用Web API(即浏览器到API)。

问题: 是否可以同时使用令牌对 Web APP 和 API 进行身份验证?

任何示例代码或明确的方向将不胜感激。


通常,Web 应用程序使用 cookie 进行身份验证,API 使用令牌进行身份验证。这里有一些示例项目,但它们是浏览器到 API(基于 SPA 令牌)或服务器端 Web 应用程序从服务器到服务器调用 API。

更新 1

应用程序正在保存TokenValidationParametersbootstrapContext.Token在应用程序控制器中使用以获取服务器到服务器的通信。

根据@dstrockis,我正试图在id_token验证结束后不久从 Web 应用程序中获取(不在应用程序控制器内)。

我在课堂上使用SecurityTokenValidated调用者。接收一个类型的参数,但我不知道在哪里可以找到它。方法如下。OpenIdConnectAuthenticationOptions.NotificationsStartupSecurityTokenValidatedSecurityTokenValidatedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions>id_token

更新 2

而不是SecurityTokenValidated,我试过了AuthorizationCodeReceived,它根本没有被调用。正如这里所讨论的,我的重定向 url 也有一个结尾斜杠

有任何想法吗?

0 投票
4 回答
15378 浏览

android - 使用 HttpUrlConnection 发送标头值

我试图使用身份验证值向服务器发送响应,它在登录时为我提供。服务器仅在发送该值时接受请求。但是它适用于邮递员(见快照)但不适用于我的代码。

代码

我也试过这样

0 投票
1 回答
59 浏览

ruby-on-rails - 如何在 Rails 中正确设置令牌身份验证?

我正在尝试为项目制作 API。我按照该视频中的说明进行操作 - https://www.youtube.com/watch?v=lgdUqtw4weg&t=165s

基本上在视频中,我为用户模型制作了一个令牌列。并设置控制器,以便我可以使用 post 方法。但是当我运行 POST 时。我收到错误消息

我认为 Devise 正在干扰 POST,并且在尝试访问非公共页面时发现用户没有登录。

我如何通过这个并获得令牌?

这是我的 api 控制器。

0 投票
1 回答
1306 浏览

ruby-on-rails - 设计令牌身份验证不返回不同域上的 Set-Cookie 标头

我有一个使用 DeviseTokenAuth 的 rails 4 后端和一个使用 ngTokenAuth 的 AngularJS 前端。
当前端和后端部署在同一个域上时,身份验证工作得很好。

在 localhost 上进行测试时,后端和前端都在 localhost 上的两个不同端口上运行,sign_in 请求以 200 OK 完成,但响应不包含 Set-Cookie 标头,因此客户端对于以下请求保持未经身份验证。

在这里,您可以看到在这两种情况下在 sign_in 响应中收到的标头的副本。
如果我尝试从本地运行的前端到部署在服务器上的 RAILS 后端进行身份验证,问题也是一样的。CORS 标头在服务器上是这样配置的,对我来说,关于跨源的一切似乎都很好:

部署在服务器上

在本地主机上测试

0 投票
5 回答
11618 浏览

python - 从 DRF 中的令牌字符串获取用户对象?

我有一个来自Django REST Framework 的 TokenAuthentication的令牌字符串。

我需要获取相应的用户对象。我该怎么做呢?

0 投票
1 回答
581 浏览

angularjs - 使用 OWIN 将用户从 SPA 验证到 Web API 时找不到 TokenEndPoint

在使用从 Angular JS SPA 页面到 WEB API 的令牌机制对用户进行身份验证时,我遇到了困难。

我不想使用 ASP.NET Identity 默认表来添加或验证用户。我有自己的数据库和一个名为“EmployeeAccess”的表,其中包含 EmployeeNumber 作为用户 ID 和密码。我想根据此表中的值对用户进行身份验证,然后想授予令牌,以便他们获得后续调用的授权。我已经使用了所有必需的 OWIN 和 ASP.NET 引用来获得结果。

请参阅下面的相关代码:-

启动.cs

AuthorizationServerProvider.cs

WebApiConfig.cs

登录.html

登录控制器.js

ApiCallService.js

单击登录按钮时出现以下两个错误:-

选项http://localhost:60544/Token 404(未找到)

XMLHttpRequest 无法加载http://localhost:60544/Token。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:60512 ”。响应具有 HTTP 状态代码 404。

我搜索了很多帖子,但没有一个帖子符合我的标准,所以我想发布我的查询。请帮助我。

0 投票
1 回答
7191 浏览

angularjs - 使用来自 Angular JS 的 Web API 令牌身份验证时出现错误请求 (400)

我想以 Angular JS 作为客户端建立 Web API 令牌身份验证。我对 Web API 中的令牌身份验证这个概念非常陌生。

我不想使用 ASP.NET Identity 默认表来添加或验证用户。我有自己的数据库和一个名为“EmployeeAccess”的表,其中包含 EmployeeNumber 作为用户 ID 和密码。我想根据此表中的值对用户进行身份验证,然后想授予令牌,以便他们获得后续调用的授权。我已经使用了所有必需的 OWIN 和 ASP.NET 引用来获得结果。这是我的不同组件的代码:-

全球.asax

WebApiConfig.cs

启动.cs

AuthorizationServerProvider.cs

登录.html

登录控制器.js

ApiCallService.js

当我单击登录按钮时,我收到以下错误消息:-

POST http://localhost:60544/Token 400(错误请求)

当我调试 WebAPI 代码时,我发现“AuthorizationServerProvider.cs”中的方法“GrantResourceOwnerCredentials()”永远不会被执行。错误消息出现在此之前。只有方法“ValidateClientAuthentication”和“MatchEndpoint”被执行。

请帮助我成功运行 Web API 令牌认证的场景。如果发现任何代码是多余的,请告诉我,以便我可以删除它。

0 投票
0 回答
2593 浏览

azure - 错误:AccessPolicy 不允许在 Windows Azure 函数应用中颁发令牌

我是 Azure Function 应用程序的新手。只是为了简要介绍我的要求和我面临的问题。我想与

Microsoft.IdentityModel.Clients.ActiveDirectory 通过我的用户凭据(天蓝色帐户)并生成一个令牌,通过它我可以刷新 Power BI 数据集。

现在作为我的 Windows Azure 函数的一部分,请注意:我正在尝试在 azure 门户函数(HttpTriggers)iteslf 即沙箱中编写这段代码。由于 Windows 功能应用程序支持使用 project.json 安装 nuget 包的 .Net frmaework 4.6,因此我安装了 Microsoft.IdentityModel.Clients.ActiveDirectory

dll 版本 3.14.x(最新)通过 project.json。

然后我尝试使用下面的代码行获取令牌

(请注意authorityUri = "https://login.windows.net/common/oauth2/authorize"; clientID="myclientid";resourceUri = "https://analysis.windows.net/powerbi/api":)

(请注意:Microsoft.IdentityModel.Clients.ActiveDirectory dll v 3.x 及以上版本不支持 AcquireToken 功能,因此使用 AcquireTokenAsync)

现在我在这一行中遇到错误,出现异常“AADSTS50131:AccessPolicy 不允许颁发令牌。”。

当我通过我的 WEB API 函数调用它时,我能够生成令牌。

对此的任何帮助都将非常重要。

提前致谢。

0 投票
2 回答
889 浏览

authentication - 我不能很好地理解 JWT 身份验证

现在很多开发者使用 JWT Authentication 来授权 api 调用。顺便说一句,如果黑客可以捕获经过身份验证的用户的 api 调用请求,那么他就可以获得经过身份验证的 JWT 令牌。然后黑客可以使用授权的 JWT 令牌访问这个 api,而无需他的身份验证。这可以吗?我想知道 JWT 身份验证实际上是安全的。你能解释一下吗?