问题标签 [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 投票
2 回答
1885 浏览

authentication - 基于令牌的身份验证如何帮助 cors、cdn、CSRF 和移动设备就绪?

我正在阅读有关基于令牌的身份验证的文章。而当我在阅读这篇文章“ Cookies Vs Tokens ”时,我没有理解以下四点(我在引用的每个点下方都提出了我的疑问)

跨域/CORS:cookie + CORS 在不同域之间不能很好地发挥作用。基于令牌的方法允许您对任何域上的任何服务器进行 AJAX 调用,因为您使用 HTTP 标头来传输用户信息。

为什么现在不会出现cors问题?如果浏览器中相邻选项卡中的某个人窃取了您的令牌(因为在该域的 javascript 中有可以清楚地说明令牌的存储位置以及如何检索令牌的代码)并开始发出请求怎么办?还有更多的说法是“cookies + cors”。为什么说 cookie 和 cors 玩的不好?

CDN:您可以从 CDN 提供应用程序的所有资产(例如 javascript、HTML、图像等),而您的服务器端只是 API。

为什么这是基于令牌的身份验证系统的优势?即使我们在进行基于 cookie 的身份验证时,我们也在使用 cdn 对吗?这是因为脚本标签可以以任何方式调用来自其他域的脚本,对吗?

CSRF:由于您不依赖 cookie,因此您不需要保护跨站点请求(例如,您的站点无法生成 POST 请求并重新使用现有的身份验证 cookie,因为不会有) .

如果浏览器中相邻选项卡中的某个人(来自其他域)窃取了您的令牌并开始发出请求怎么办?我也无法理解这一点。

移动就绪:当您开始在原生平台(iOS、Android、Windows 8 等)上工作时,cookie 在使用安全 API 时并不理想(您必须处理 cookie 容器)。采用基于令牌的方法可以大大简化这一点。

完全没看懂。有人可以解释一下,如何?

0 投票
1 回答
1852 浏览

c# - 使用 BCrypt 哈希密码的基于令牌的身份验证

我对 Asp.net mvc 完全陌生。我正在尝试在我的 Asp.net mvc 应用程序上实现基于令牌的身份验证。我已经根据http://www.primaryobjects.com/2015/05/08/token-based-authentication-for-web-service-apis-in-c-mvc-net/成功实现了 客户端生成的令牌在哪里随每个 http 请求一起发送。在服务器端,我处理这个令牌并获取其中的数据以在服务器端生成一个令牌以进行比较。我的令牌包含数据用户名、密码、ip、用户代理和时间戳。在服务器端,我从客户端令牌获取用户名并从数据库中检索密码以在服务器中生成令牌。现在的问题是我的应用程序已更改为使用在数据库中存储加密密码BCrypt.Net.BCrypt.HashPassword. 现在的问题是使用这个 BCrypt api 我无法解密哈希密码来获取原始密码。所以我不知道如何在服务器端生成令牌。对此的任何想法都受到高度评价

0 投票
1 回答
54 浏览

ember.js - 每当会话更新时触发操作,在应用程序重新启动时

我正在使用ember-simple-auth(和ember-simple-auth-token,但我认为这不相关)。每当登录用户重新加载页面时,都会正确地重新创建会话。不过,我有一个问题:当用户输入凭据时,我正在运行以下代码:

但我不知道如何触发我refreshActiveUser的应用程序重新加载。如何收听“会话初始化”事件?

0 投票
1 回答
3011 浏览

c# - 基于令牌的身份验证和哈希密码

在我的 asp.net Web 服务中,用户密码已存储为哈希值,使用

而且我的 Web 服务也需要实现基于令牌的身份验证。我对此并不陌生,正如我从阅读身份验证令牌中了解到的那样,密码也以散列字符串的形式出现。所以我不知道如何验证身份验证令牌,因为我不知道任何一方的原始密码。真的需要在身份验证令牌中对密码进行哈希处理吗?或者我可以将密码作为 base 64 编码字符串附加到身份验证令牌吗?安全吗?

0 投票
0 回答
1083 浏览

django - django rest framework 令牌认证与过期令牌

我正在创建一个与 django rest 框架一起使用的 django api 系统。我需要一个以下列方式工作的过期令牌系统

我们有三个用户角色

  • 管理员(令牌在 1 小时后过期)
  • 主管(令牌在 1 小时内到期)
  • 最终用户(令牌在 6 个月内到期)

我看到了很多第三方插件,但这并不完全符合我的要求

有人找到可以调整或直接用于满足我要求的软件包吗?

谢谢阿基尔

0 投票
1 回答
323 浏览

rest - 使用 JwtBearerAuthentication 在 aspnet5 rc1 Web API2 身份 3 中发出刷新令牌

我目前停留在如何在 aspnet5 中实现刷新令牌流的机制上

目标:我想拦截每笔交易以检查令牌是否已过期或即将过期,如果是,请更新它。(我已经在验证它的签名)。

我发现在设置 JWT 选项时,我可以在 Startup.cs 中发现到期时间:

目前,这只是引发“终身验证器失败”的异常......这就是我所在的地方。

我会以正确的方式解决这个问题吗?这是检查过期的正确位置吗?我如何具体要求 API 从此处发出刷新令牌?

0 投票
0 回答
819 浏览

ruby-on-rails - 设计 Token Auth 在密码重置时需要 current_password

我已config.check_current_password_before_update = :password启用。因此,当用户更新他/她的密码时,该current_password字段是必需的。这在实施时会成为一个问题,password reset因为用户不知道他/她当前的密码。我如何绕过这个并且current_password在用户没有重置他/她的密码时仍然需要?

除此以外,一切正常,电子邮件发送,/password/edit返回仅对一个会话启用的正确令牌,但current_password要求没有任何意义。如果我把它拿走,那么重置密码就可以了,但是如果用户尝试更新他/她的密码,应用程序不会允许它并给出,ActiveRecord::UnknownAttributeError (unknown attribute 'current_password' for User.):因为它将它视为用户属性。

有谁知道如何在工作流程中克服这个问题?

0 投票
1 回答
430 浏览

javascript - Satellizer 未将身份验证标头传递给我的 API

所以我目前在本地工作,我有一个 API(Laravel)。一切都很好,我可以使用 Facebook 登录,我从我的 API 获得了一个 JWT,它保存在本地存储中,但是,在被记录后,API 调用确实包含“授权:承载 + 令牌”标头。

根据我在文档中的理解,这应该全部设置并准备好在应用程序方面进行配置?

这是我的代码:

应用程序.js

示例 API 调用:

上述请求中的请求头:

有什么想法吗?

0 投票
0 回答
556 浏览

php - Ionic Token authentication php Server - 安全问题

我对这个主题很陌生,想实现基于令牌的用户身份验证,并想知道这是否是以“相当”安全的方式执行此操作的正确步骤。

首先在 Ionic 应用程序上:

-> 通过 ionic http 方法以纯文本形式将登录数据发送到 https 服务器


在 PHP 服务器上:

-> 比较用户名和密码

-> 如果那是真的,生成一个安全密钥(最少 25 个字符)

-> 将用户标识(plain)和密钥(MD5+Salt)存储在一个表中,并带有过期时间

-> 生成一个 JWT 令牌,带有一些用户数据

-> 回显 JWT 令牌以将其发送回 ionic 应用程序


回到 Ionic 应用程序:

-> 将 JWT Token 存储在设备的本地存储中

..创建一些数据..


向php服务器发送数据:

-> $http 使用一些参数发布到 php 服务器


在 php 服务器上:

-> 检查存储密钥的表中是否存在 post userid

-> 如果是,通过过滤userid获取key,检查时间是否过期

-> 如果是,解码 JWT

-> 如果那是成功的,做一些服务器的事情,比如在数据库中插入数据

我知道没有 100% 安全的方式,但我想知道这是否可以节省使用,或者我是否监督了某些事情!

谢谢

0 投票
1 回答
1477 浏览

python-3.x - 从 flask_httpauth 导入 HTTPTokenAuth 时遇到问题

我正在尝试对 Flask 项目使用令牌身份验证。

我收到以下错误

我试过了

但它声称一切都是最新的。(Flask-HTTPAuth==3.1.1)

文档建议这是导入它的正确方法,但由于某种原因它不起作用。有什么想法可以让我导入令牌身份验证吗?

编辑:: 我删除并重新创建了我正在使用的虚拟环境。

我在任何地方都使用 python。

问题仍然存在。我发现默认加载旧版本的 Flask_httpauth(v2.2.0 而不是 v3.1.1)。我进入站点包,看到 HTTPTokenAuth 在那里并且应该被调用。

我试着做

检查我的应用程序调用的版本,但这不适用于所有 python 包,而且flask_httpauth 似乎没有该功能。

在 pythonanywhere 的 web 选项卡上链接了虚拟环境的位置没有显示错误。