- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 32 位操作系统中解析 facebook signed_request。 用于在 64 位操作系统中解析 signed_request 的 java 代码工作正常。 当我在 32 位操作系统中使用修改后的代码时, 它给出以下错误“位置 0 处的意外字符 (£)”。 请帮助我确定问题所在。
if (request.getParameter("signed_request") != null)
{
signed_request = request.getParameter("signed_request");
//out.print("<br>signed_request: "+signed_request);
try
{
System.out.println("signed_request"+signed_request);
System.out.println("signed_request1");
fb_data = parse_signed_request(signed_request, secretKey);
}
catch(Exception e)
{
System.out.println("error"+e);
}
}
public static Map parse_signed_request(String input, String secret) throws Exception {
return parse_signed_request(input, secret, 3600);
}
public static Map parse_signed_request(String input, String secret, int max_age) throws Exception {
String[] split = input.split("[.]", 2);
String encoded_sig = split[0];
String encoded_envelope = split[1];
JSONParser parser = new JSONParser();
Map envelope = (Map) parser.parse(new String(base32_url_decode(encoded_envelope)));
String algorithm = (String) envelope.get("algorithm");
if (!algorithm.equals("HMAC-SHA256")) {
throw new Exception("Invalid request. (Unsupported algorithm.)");
}
if (((Long) envelope.get("issued_at")) < System.currentTimeMillis() / 1000 - max_age) {
throw new Exception("Invalid request. (Too old.)");
}
byte[] key = secret.getBytes();
SecretKey hmacKey = new SecretKeySpec(key, "HMACSHA256");
Mac mac = Mac.getInstance("HMACSHA256");
mac.init(hmacKey);
byte[] digest = mac.doFinal(encoded_envelope.getBytes());
if (!Arrays.equals(base32_url_decode(encoded_sig), digest)) {
throw new Exception("Invalid request. (Invalid signature.)");
}
return envelope;
}
最佳答案
使用base64
方法解码JSON 对象。无需修改为 base32
,因为它与操作系统没有关联。架构。
修正缺陷:
Map envelope = (Map) parser.parse(new String(base64_url_decode(encoded_envelope)));
关于java - 在 facebook 中解析 signed_request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15872698/
我正在尝试从 URL 向我的 facebook 应用程序传递一些变量,即像 facebook 想要的那样使用 GET 变量 app_data 。 在某些时候,我已经停止获取 $_REQUEST 的 [
我有一个页面选项卡应用程序。有时,当登录用户从 Facebook 页面单击选项卡名称时,传入的表单“signed_request”数据是空的。 关于如何发生的任何想法?它是零星的,似乎没有锁定到一个特
我遇到了一个问题。 我有自定义页面选项卡,当前用户正在查看。我要求用户授予对其个人资料的扩展权限(使用 Facebook.showPermissionDialog)。如果他授予权限,理论上,我将可以访
我有一个 Facebook signed_request,它是通过订阅 auth.login 事件并在用户使用 facebook login button 登录后收到的。 在我对 signed_req
我正在尝试在 32 位操作系统中解析 facebook signed_request。 用于在 64 位操作系统中解析 signed_request 的 java 代码工作正常。 当我在 32 位操作
我开发了一个 flash 游戏,它在网站上运行,不应该像 iframe 等那样直接在 Facebook 上运行。我已经在 Facebook 注册了一个应用程序并拥有 ID 和密码,已经输入我的应用程序
我正在使用安装在 pythonanywhere 上的 django_facebook 库。当我单击从一个 View 到另一个 View 的链接时,我收到一条错误消息: 400 Bad Request
任何人都可以指出可能适用于此的任何教程的方向。 到目前为止,我只找到了一个适用于框架 4 和 MVC 的框架,我什至不确定它是否适用于框架 3.5。 我发现其他引用资料太难理解,因为我是 C# 的新手
我使用 Facebook 作为我的 Web 应用程序 (ASP.NET MVC) 的登录提供程序。 我的登录工作类似于另一个 StackOverflow 帖子 How to securely auth
我在粉丝页面的 facebook 选项卡中加载了一个 iframe,但我无法访问 $_REQUEST["signed_request"] 对象。我很困惑,因为这应该是免费赠品并且很容易获得。我已经阅读
https://developers.facebook.com/docs/facebook-login/using-login-with-games/ 他们声称json对象是 { "oauth_
在我的 Canvas 页面中,我尝试按照 http://developers.facebook.com/docs/guides/canvas/ 中描述的方式对用户进行身份验证,基本上使用这段代码(来自
我有一个 FaceBook 应用程序。 有什么方法可以用 JavaScript 获取 signed_request 吗? 对于 PHP,它看起来像这样:$_REQUEST['signed_reques
我记得 Canvas 应用程序签名请求中的所有内容:http://developers.facebook.com/docs/authentication/signed_request/ 现在我正在使用
我想弄清楚用户是否喜欢我们的品牌页面。基于此,我们想要显示一个赞按钮或一些“谢谢”文本。 我正在使用托管在 heroku 上的 sinatra 应用程序。 我尝试了这个线程中的代码:Decoding
受到 Hacker News 在 20 分钟内编写一个 facebook 应用程序的启发,我正在编写一个 facebook 应用程序,主页工作正常:显示空的诗歌列表。但是,我无法创建从一个 View
根据 Facebook - Authentication within a Canvas Page Document ,他们说我们将得到一个包含 JSON 对象的 signed_request。现在他
因此,我正在使用 Java 验证 Facebook 的 signed_request。不幸的是,我一直在验证过程中遇到问题。我看过 this documentation ,并模仿他们的算法,但没有成功
我从 Facebook 的教程了解到有人点击您的 Facebook 应用程序并被带到您的应用程序页面:http://apps.facebook.com/example_app 然后 Facebook
我正在尝试在 Java Servlet 的 doPost 中解析 Facebook signed_request。我使用 commons-codec-1.3 的 Base64 解码签名请求。这是我在
我是一名优秀的程序员,十分优秀!