问题标签 [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.
javascript - 在 node.js 中验证 JWT
我正在尝试基于此示例(在 .NET 中编写)解析和验证 node.js 中的 JWT 令牌:https ://github.com/liveservices/LiveSDK/blob/master/Samples/Asp.net/AuthenticationTokenSample/ JsonWebToken.cs
这是我验证令牌的节点 js javascript:
现在,非常奇怪的是 - 它几乎可以工作。这是三个 console.log 语句的输出:
在我看来,除了 +-/_= 之外,哈希值都相同
有人发现我的错误吗?与我的 base64 编码有关。
更新
我又玩了一些,这里的 base64 编码似乎有些奇怪。节点js中的以下代码:
产量:
这看起来很奇怪,对吧?
php - PHP postback url 谷歌钱包 IAP
我用于谷歌钱包应用内支付的回发 php 如下所示:
我有两个问题:
1.为什么我会看到这个错误?...呃哦。有问题。由于技术问题,我们无法完成您的购买。问题详情如下:很遗憾,我们无法通过商家的服务器确认您的购买。您的订单已被取消。如果此问题仍然存在,请与商家联系。
2. 如果我有多个要出售的物品,这将如何运作?上面的示例 php 让您可以以 10.50 美元的价格购买一个“披萨”,我如何添加另一个项目,例如“2.99 美元的热狗”?
ps:我研究了以下文档:
https://developers.google.com/in-app-payments/docs/tutorial#4
https://developers.google.com/in-app-payments/docs/jsreference#jwt
https://developers.google.com/in-app-payments/docs/postback
感谢您的时间。
//更新!
postback.php: require_once 'JWT.php';
JWT.php: $json = json_encode($input, JSON_UNESCAPED_SLASHES);
哦哦。有问题。由于技术问题,我们无法完成您的购买。问题详情如下: 很遗憾,我们无法通过商家的服务器确认您的购买。您的订单已被取消。如果此问题仍然存在,请与商家联系。
github - 如何将 goog.payments.inapp.buy 与 luciferous jwt 一起使用?
阅读此https://developers.google.com/in-app-payments/docs/tutorial
从上面的页面引用:因为您使用密钥(Seller Secret)签署 JWT,所以您必须使用服务器端代码生成 JWT。如果您使用库,这是最简单的。https://github.com/luciferous/jwt
我必须以某种方式包括这个......?我怎么这样?那里有不止一个文件,没有读到他们每个人的工作,我很困惑!
文档只是不说!
api - 现在开始实施谷歌钱包还为时过早吗?
Google Wallet In-App Payments、https://developers.google.com/in-app-payments/、开发者文档和工具目前最有缺陷、不完整和/或缺乏相关信息。我觉得我必须写这篇文章,希望他们能注意到,或许能听到我们的担忧,并对此加以改进。另外,由于目前没有太多关于这个新支付系统的开发者信息,我希望这会产生积极的影响。
支持文档指向https://groups.google.com/group/in-app-payments/topics上的一个非常安静的论坛。理想情况下,它可能只是指向这里有生命的地方!;)
服务器端示例仅部分记录,指导建议使用大约五六个不同库之一,但指导完全到此为止。
一个库链接指向一个用 Python 编写的 GitHub 存储库,显然,您必须以某种方式重写其中一个主文件才能使用。谷歌钱包团队在文档中的任何地方都没有记录这一点。也很奇怪的是,他们会选择只编写一小部分 PHP 教程,顺便说一下,这是一种非常流行、熟悉且使用率极高的语言。相反,当页面上的第一个示例https://developers.google.com/in-app-payments/docs/tutorial是用 Ruby 编写时,他们用 Python 编写了一个主要示例……
关于文档的另一个令人惊讶的质量不足是他们列出了调试时可能遇到的各种错误代码的页面。它的失踪真是令人惊讶。
错误可能看起来像这样:哦哦。有问题。由于技术问题,我们无法完成您的购买。问题详情如下: 很遗憾,我们无法通过商家的服务器确认您的购买。您的订单已被取消。如果此问题仍然存在,请与商家联系。
此外,没有任何关于这些错误的文章:
他们都没有表现出任何专业期望和/或确定的信息来帮助任何人。
更进一步,生成 JWT 的工具被破坏了:
http://developers.google.com/in-app-payments/docs/jwtdecoder
https://checkout.google.com/customer/gadget/inapp/demo.html
至少文档教会了我一件非常有用的事情,“In-App Payments API 使用 JSON Web Token — 或 JWT,发音像英文单词 jot。” “草稿?” 当你在酒吧里时,知道如何发音这些东西总是很高兴。我可不想像这样和一个发音不正确的女孩聊天,出丑!
javascript - 如何通过 PHP 使用 Google 电子钱包?
我目前真的是我遇到过的最困难的事情,用 PHP实现Google Wallet 。过去两周我一直在研究它,几乎没有运气。
我不是唯一一个被困在这方面的人。我从哪里开始?我在互联网上搜索教程和文档没有结果。
php - Google 应用内付款:如何处理 Google 的回发 JWT
也许这是一个愚蠢的问题,但我不是高级程序员。我已经成功地为我的应用设置了应用内付款,但它只能在不使用回发网址的情况下工作。
我已经用谷歌搜索了很多小时,试图自己解决这个问题,但没有成功。希望有人可以帮助我。我已经包含了处理显然有问题的发布数据的脚本。这就是谷歌所说的:
您的服务器必须为 Google 发送到您的回发 URL 的每条 HTTP POST 消息发送一个 200 OK 响应。要发送此响应,您的服务器必须:
解码在 POST 消息的 jwt 参数中指定的 JWT。检查以确保订单正常。获取 JWT 的“orderId”字段的值。发送一个 200 OK 响应,正文中只有一件事:您在第 3 步中获得的“orderId”值。
这是我写的,但据我所知,没有办法对其进行测试(如何模拟来自 Google 的帖子?)。
任何帮助将非常感激。谢谢蒂姆
php - 服务应用程序和 Google Analytics API V3:服务器到服务器 OAuth2 身份验证?
我正在尝试制作一个服务器应用程序来定期从我自己的 GA 帐户中提取 Google Analytics 数据。请注意,它是访问我自己的数据的个人服务器端应用程序,即没有最终用户访问此应用程序。
因此,我在Google API Console中将我的应用程序注册为Service Application,它给了我一个Client ID和一个Private Key。据我了解,服务应用程序不使用应用程序密钥和重定向 URL,因为在此服务器到服务器身份验证流程中没有最终用户。事实上,Google API 控制台没有给我任何秘密,也没有提示我输入重定向 URL。
不幸的是,我不知道如何在Google 的 PHP Client API中验证我的服务应用程序。有大量关于通过最终用户验证 Web 应用程序的文档。
Google 的文档表明,可以通过使用 private key 签署 JWT 请求来验证服务器到服务器的身份。我只是不知道如何在 PHP 客户端 API 中进行操作(尽管我已经浏览了源代码,并且肯定有一个脚本可以使用私钥对请求进行签名。)
我在这里错过了什么吗?如何使用我的私钥和 Google PHP 客户端 API 对服务应用程序执行身份验证?
为清晰起见进行了编辑
c# - C# 中是否有任何 JSON Web 令牌 (JWT) 示例?
我觉得我在这里服用疯狂的药丸。通常,对于任何给定的任务,网络上总是有一百万个库和样本。我正在尝试使用此处描述的 JSON Web Tokens (JWT) 使用 Google“服务帐户”实现身份验证。
然而,只有 PHP、Python 和 Java 中的客户端库。即使在 Google 的身份验证之外搜索 JWT 示例,关于 JWT 的概念也只有蟋蟀和草稿。这真的很新,而且可能是谷歌专有系统吗?
我能解释的最接近的 java 示例看起来非常密集且令人生畏。C# 中必须有一些我至少可以开始的东西。对此的任何帮助都会很棒!
c# - “Google 服务”的 OAuth2 身份验证返回“invalid_request”
我正在尝试形成一个 json 请求,以使用 oath2 规范进行身份验证以进行 Google 的“服务帐户”身份验证。我在这里使用谷歌的文档。它正在使用 JWT。似乎没有太多关于如何使用 C# 执行此操作的信息。这是我正在使用的 RAW json 请求,但我能从谷歌得到的唯一响应是“invalid_request”。
关于可能发生的事情有什么想法吗?我正在尝试创建一个 Windows 服务,以设定的时间间隔 ping 谷歌纬度位置?是否有另一种方法可以在不跳过这个环节的情况下访问该 API?谢谢!
c# - 用于服务应用程序的 Google oAuth 2.0(JWT 令牌请求)
我正在尝试为此处描述的服务帐户实施 Google oAuth 2:UnityScript (或 C# 上的https://developers.google.com/accounts/docs/OAuth2ServiceAccount - 没关系,因为它们都使用相同的 Mono .NET类)。
我在这里找到了类似的主题:Is there a JSON Web Token (JWT) example in C#? web-token-jwt-example-in-c 但我仍然没有成功。
首先,我生成了标题和声明集(就像在谷歌文档中一样)
结果是(为清楚起见,用新行分隔):
{"alg":"RS256","typ":"JWT"}
{"iss":"425466719070-1dg2rebp0a8fn9l02k9ntr6u5o4a8lp2.apps.googleusercontent.com",
“范围”:“ https://www.googleapis.com/auth/prediction ”,
“aud”:“ https://accounts.google.com/o/oauth2/token ”,
“exp”:1340222315,
"iat":1340218715}
Base-64 编码方式:
然后我正在做一个签名。
然后形成请求:
我得到的只是“错误 400:错误请求”。
编码数据看起来像(为清楚起见添加了换行符):
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9。
eyJpc3MiOiI0MjU0NjY3MTkwNzAtMWRnMnJlYnAwYThmbjlsMDJrOW50cjZ1NW80YThscDIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTM0MDIyMjMxNSwiaWF0IjoxMzQwMjE4NzE1fQ。
LIFg7-Og_BcC5qpICLt7USwGIHUOz-vV4ADNq0AWhuRtsvFrbZn5mxk4n9r5qU66q4reTVVAtuW06DeGsdcBMNgEdIMvN6VuYQybs64p9mqrfECBYxO1FWHbUG-2On1IpowybEsRRUjZfp0jFuEYjmezLQ3
我花了两天时间试图找出问题所在,但我看不到。
此外,我找不到任何合适的文档和示例。
我只是想收到一个令牌。
- 我是否以正确的方式签署字节?
- 声明集中的“范围”参数应该是什么样的?我试过“ https://www.googleapis.com/auth/devstorage.readonly ”和“ https://www.googleapis.com/auth/prediction ”。
- “iss”参数应该等于什么?客户 ID 或电子邮件地址?(都试过了)
- 有什么方法可以找出我的错误?
- 是否有任何用于服务应用程序的 C# 库(不适用于已安装的应用程序或客户端登录)?
我快疯了......它必须工作,但它没有...... :-/