问题标签 [paseto]

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 投票
0 回答
470 浏览

php - 在 PHP 中生成 Paseto V2 公钥/令牌,在 Node.js 中验证

前言:

什么是帕塞托?:https ://developer.okta.com/blog/2019/10/17/a-thorough-introduction-to-paseto

我已经能够使用 PHP lib(在服务器端使用 RSA 私钥作为密钥对)成功实现 Paseto V1 令牌和相应公钥的创建,然后使用公钥在节点上验证给定令牌.js 方面:

PHP 帕塞托公共 V1:

NodeJS 帕塞托公共 V1:

这很好用,我可以在 Node.js 中验证我的声明并使用摄取的数据处理我需要的内容。

现在,如果我尝试使用 V2 进行以下操作,调用bin2hex()公钥以便能够存储它并在 Node.js 端使用它,我无法在 Node.js 中正确验证。我相信它与钠加密二进制密钥的生成有关,以及如何$publicKey->encode()使用Base64UrlSafe::encodeUnpadded($this->key);但不确定..我从来没有BEGIN PUBLIC KEY从使用 V2 创建的 publicKey 中获得,因为我相信它只是作为二进制存储的?

PHP 帕塞托公共 V2:

NodeJS Paseto 公共 V2:

感谢您提供的任何反馈。如果您有任何其他问题,请告诉我。我将其标记slim为 PHP 框架,因为我在一个苗条项目中使用 PHP paseto 库将公钥/私钥存储在我的苗条容器等上,并将 NodeJS 存储在 lambda 的上下文中。

0 投票
1 回答
53 浏览

paseto - JPaseto 令牌创建需要 2 分钟

我尝试运行 https://github.com/oktadeveloper/okta-jpaseto-example ,它工作正常,但创建令牌的代码需要 2 分钟以上,有些运行时间为 7 分钟

我还关注了视频 https://www.youtube.com/watch?v=aOyG68jvthM ,该视频 在创建令牌方面也存在问题。此代码通常在 2 分钟左右

链接到核心库:https ://github.com/paseto-toolkit/jpaseto

据我了解,paseto 将在用户登录后创建一个令牌。可以用来识别用户。但是等待2分钟+似乎很长。

0 投票
0 回答
89 浏览

laravel - Paseto example with Graphql(Lighthouse Laravel)

I am looking for a paseto example with Graphql(Lighthouse Laravel) or how to create paseto's for each resource using the user roles and types. Or how to restrict access to only specific resources.

I only found this:

Update: I create a request for paseto implementation in PHP Lighthouse, if you like this idea please give a thumbs up so that this request can get noticed and implemented. Thank you, the request is here

Thanks in advance for any direction or info

0 投票
1 回答
139 浏览

node.js - NodeJS Paseto Key:无法读取生成的密钥

我正在使用paseto npm 包来生成密钥,并进一步使用该密钥来创建令牌。

我在这里理解某些东西可能会出错,如何存储生成的密钥?

以下是代码:

我如何知道“mySecret”是什么以及如何存储它?

0 投票
1 回答
149 浏览

javascript - 需要帮助验证 JavaScript 中的 PASETO 令牌的有效性。目前有依赖于有效载荷的不稳定行为

我正在尝试测试 PASETO 令牌,但遇到一个问题,我无法在前端正确验证令牌的有效性。由于我还没有找到任何用于检查签名的浏览器实现,因此我必须自己执行此操作,使用https://paseto.io/rfc/作为参考。使用的令牌类型是v2 public.

问题:

我编写的验证程序在某些情况下接受签名,但这取决于签名的有效负载。我是否会在生成新令牌之前将另一个键值对添加到有效负载或更改数据,验证者错误地说新令牌的签名无效。要查看实现,请检查下面的沙箱。

负载是否有我不知道的限制或要求?是否有我缺少的编码?还是我只是错误地实施了它并且不符合 PASETO 规范?任何指针都会有所帮助。

复制:

这个沙箱展示了我的实现和问题,带有不同有效负载的令牌,由相同的 ed25519 密钥签名: https ://codesandbox.io/s/paseto-decoder-lvk7r?file=/paseto.js

这是一个苗条的回购,因为这就是我将如何使用它。但重要的部分是paseto.js文件。

沙盒中使用的令牌是从项目的后端服务获得的,用 Go v1.14 编写:

在后端的相同三个令牌上运行该paseto.NewV2().Verify()函数会导致所有令牌都有效,因此 Go 包验证方法的实现与我自己的 JavaScript 方法之间存在差异。

在这一点上,我不确定哪里出了问题,因为执行检查的实现太少了。正如我所看到的,它可能是我在 JS 中的验证方法、我用来创建令牌的 Go 包/实现,或者两者兼而有之。在这一点上,任何指向我在哪里弄乱不同编码或有什么问题的指针都将非常感激。

PS:这篇文章和沙箱中的任何秘密(例如令牌/密钥)在我的项目中都已失效。

0 投票
1 回答
29 浏览

go - 我如何在 GO paseto v2(public) 中获取发行者或页脚或任何其他数据

我有一个代码用于生成带有附加数据(如发行者或页脚)的令牌。但是在令牌验证令牌之后,我找不到任何方法来获取该信息。

谁能帮我获取发行人或页脚或任何其他数据。提前致谢。

0 投票
1 回答
65 浏览

encryption - 为什么 JWE 比仅使用 RSA/AES 加密内容/有效负载更好?

我们希望将代币用于某些服务(我们拥有和开发),并且我们正在考虑实施 JWE 或 Paseto。

令牌和有效负载应加密(一些字符串或 json)。

使用 JWE 或其他东西而不是仅仅使用某种算法加密有效负载并将其用作令牌有什么好处?