问题标签 [express-jwt]
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.
express - jwt 服务器端认证 JsonWebTokenError
我正在尝试进行一些服务器端身份验证。
在服务器端登录()
在客户端http
在服务器端验证
我正确地在服务器上获得了令牌。授权:“承载……”
但它无法验证。我得到了 JsonWebTokenError 无效的令牌。
谁能帮忙指出我错过了什么?
jwt - JWT - 将令牌存储在 cookie 中
我知道将令牌存储为 cookie 与使用 localStorage 有很多区别/优点和缺点。这个问题是关于将其存储在 cookie 中的实际实现的问题。
我很困惑,因为如果令牌存储在 cookie 中,用户将始终得到验证,从而使令牌的使用毫无价值。令牌将始终与服务器端会话数据相关联。
有人可以解释实施细节吗?
angularjs - Express-jwt Throwing UnathorizedError: Chrome 和 Firefox 工作时在 IE11 中找不到授权令牌
我已将问题追溯到此电话:
使用最新版本的 express-jwt
这是完整的文件
我在 IE 中看到“In Auth Service”登录,然后出现以下错误:
在 Chrome 和 Firefox 中,这工作正常,我看到日志“附加用户”。
我不是 express 或 jwt(或 javascript)专家,所以对为什么这在 IE 上不起作用有什么想法吗?我无法在 IE11 中登录我的应用程序。
Chrome 的标头:
头
//身体是空的...
身体 = {}
获取 IE ...
IE11:头部
//body 空 Body = {}
并且弹出了这个错误。UnauthorizedError:未找到授权令牌
添加 Req.query(仅来自 IE - 在 Chrome 上为空也为空)
头
{"x-xsrf-token":"Q9WJPpcGYhLyBn1YX1I8asymB1rVtTfLN1ZJk=","accept":"application/json, text/plain, / ","referer":" http://172.20.10.2:9000/login ","accept -language":"en-US","accept-encoding":"gzip, deflate","user-agent":"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) 像 Gecko","主机":"172.20.10.2:9000","dnt":"1","连接":"Keep-Alive","cookie":"_ga=GA1.4.1855210034.1464283317;_gat=1;XSRF-TOKEN= Q9WJPpcGYhLyBn1YX1I8asymB1rVtTfLN1ZJk%3D;connect.sid=s%3ANvaz9AfTMU3t0CDq-3aRzSIF7Uw_bmfh.GV6s5MXKpk3XiULQbmQrJR2w7QAuJxUb0BGCYfmjuic;令牌=eyJ0eXAiOiJKV1QILCNiCJh9.GciOiJKV1QiLCNiCJh9.GciOi"
{} 请求查询
{}
///在尝试了 Eric 的建议并实现了与 angular-fullstack 代码修复相关的代码更改后,我在 IE 上得到了这个标题。(但不幸的是没有登录 - 在 /api/user/me. 部分得到 401。我将在今天晚些时候恢复一些进一步的更改,这些更改可能是昨晚我太累时所做的。
头
{"accept":"application/json, text/plain, / ","if-modified-since":"Mon, 26 Jul 1997 05:00:00 GMT","cache-control":"no-cache" "pragma":"no-cache","x-xsrf-token":"Ajy7jYPUQj7Mnixtqq8rvJRyxj/pv6s2P36eo=","referer":" http://192.168.1.17:9000/login?auth_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.e% %80%8C%E2%80%8ByJfaWQiOiI1NzE1ODg0MjEyZTU3OTFkMzEwZmQ1MTMiLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE0NjQyOD%E2%80%8C%E2%80%8BQwNDMsImV4cCI6MTQ2NDMwMjA0M30.YJj4LaHdhRtzfr0AdjTkZwTZM2M4B0YSoR3qactkq8o","accept-language":"en-US,en;q=0.5","accept-encoding":"gzip, deflate","user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident /7.0; rv:11.0) like Gecko","host":"192.168.1.17:9000","dnt":"1","connection":"Keep-Alive","cookie":"XSRF-TOKEN= Ajy7jYPUQj7Mnixtqq8rvJRyxj%2Fpv6s2P36eo%3D; connect.sid=s%3A43OG6niC7AAUnnOQ2cnbZe0mW1Qx6Ag5.xi0KLw9FbkMOWIofcbuTXBNDGxZXfZu87XXDxZDNO6A;_ga=GA1.4.540511734.1464357176; _gat=1; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJfaWQiOiI1NzE1ODg0MjEyZTU3OTFkMzEwZmQ1MTMiLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE0NjQzNTc4NjIsImV4cCI6MTQ2NDM3NTg2Mn0.Si_4hZuntOLWwYpT2WGEKVpYi36WA3_aiuHZj7445LY"}
正文 = {} 请求查询 = {}
///添加我认为是添加授权标头的代码我感谢大家花时间和我一起研究这个!
angularjs - 使用护照 jwt 进行身份验证
我是基于令牌的身份验证的新手。我想将用户限制在我网站上的特定页面(检查他的身份验证),并看到 jwt 是实现它的最佳方式并遵循此处的教程:https ://devdactic.com/restful-api-user-authentication-2 /,但我怎么能限制用户访问页面(要求他登录)?在这里,作者说他使用AuthInterceptor
了 which 检查身份验证部分。但我对身份验证拦截器感到困惑。任何人都可以解释我们如何限制用户(例如代码的限制部分是服务器端还是客户端,如果是服务器端,我可以在其中提供代码参考node.js
)吗?
node.js - 处理可组合中间件中的 Express-JWT 错误
我正在为每个 API 实现 JWT 授权,如下所示:
auth.js
index.js
除了 JWT 的错误处理之外,一切都工作得很好。在移动到下一个中间件之前,我不了解validateJwt(req, res, next);
如何处理的功能。Unauthorized Error stack
node.js - JWT with Node & Passport:重启服务器
我是 Node 新手,并尝试设置 Node 和 Passport 以在身份验证时创建 JWT。
我希望建立一个“无状态认证机制”来减少对数据库的往返需求。
通过“无状态”,如果没有共享机密或 JWT 保存在数据库中,我假设如果服务器重新启动,所有发布的 JWT(登录用户)都将失效,因此需要一个新的 JWT 供所有用户访问受保护的路线。我不希望用户在每次服务器重新启动或新实例旋转时重新登录。
我相信我可以将静态共享密钥传递给 Node 环境,我每次都可以使用它来生成不影响服务器重启的相同 JWT。
问题:
如果一个好的做法是传递共享密钥,我应该在哪里以及如何创建这个共享密钥?我必须传递哪些共享秘密?
但是,如果将共享密钥传递给 Node 环境不是一个好策略,我是否愿意听取建议?
更新
当我说“密钥”时,我的意思是共享秘密。我会更新这个问题,以免造成混淆。
oauth-2.0 - JWT:验证签名秘密格式。
我正在尝试创建一个 JWT。我遵循此处提供的格式:https ://jwt.io/
在 VERIFY SIGNATURE 下有一个名为secret
如何在代码中创建该秘密?它可以是任何字符串还是必须是某种格式?
angularjs - 认证:强制刷新页面进行授权
我正在使用此博客中的代码为我的 Angular 应用程序制作身份验证模块。
我有一个测试页面,其中包括一个登录表单、一个提交按钮和一个“配置文件”按钮,用于查询受限路线。
我登录后查询的受限路由定义为:
登录工作正常。我收到一个放入 sessionStorage 的令牌。当我单击个人资料按钮(向 /me 请求)时,我收到一个未经授权的错误。
如果我刷新页面并再次单击配置文件,我会得到预期的行为。(/me 返回用户数据没有错误)
如果我之后手动删除令牌,我仍然可以访问 /me,直到我刷新页面。
这是我的服务:
这是我使用 httpProvider 的控制器:
问题可能来自将令牌存储在 sessionStorage 中还是来自 http 提供程序?
最终,我将实施安全 cookie 方法,但我想在进一步处理之前解决这个问题。
angularjs - JWT 身份验证适用于 $http.get 但不适用于 $http.post
我是 MEAN 堆栈的新手。我正在使用 jwt 来验证 api 端点'/api/candidates'
在客户端/角度 js 服务中,我有以下条目
在服务器端我有:
这工作正常。即'auth'能够从标头中提取令牌
当我将所有内容更改为发布而不是获取时:
在客户端
在服务器端:
我从 jwt 收到如下错误:
关于发生了什么的任何建议?我可以使用get但我想知道为什么post不起作用
node.js - 如何使用 express-jwt 重定向到未经身份验证的用户
这是我的第一个快递应用程序。我正在尝试对某些路由实施身份验证。理想情况下,如果用户未通过身份验证,他们将被重定向到主页。所以我写了这个中间件:
如果用户已登录,则代码有效。但是,如果用户没有登录,浏览器只会显示 401 未经授权的错误。没有重定向。该过程在 express-jwt 中间件处失败,并且没有继续到我的重定向中间件。
我需要在 jwt 函数中设置一些配置吗?或者,如果遇到 401,是否有办法设置全局重定向。