问题标签 [access-token]
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.
iphone - OAuth 访问令牌请求失败 (NSErrorFailingURLStringKey)
我在 OAuth 过程中完成了以下步骤:
1)请求令牌
2)授权令牌
3)接收 PIN 码
我无法开始工作的是使用我收到的 PIN 获取访问令牌。它总是击中我的accessTokenTicket:didFailWithError
选择器。
这是传递给它的 URL:
http ://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE
这是被调用的代码:
并且该didFail
方法(只是一个NSLog
错误)产生了这个错误:
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x6160c20 {NSErrorFailingURLKey=http://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE, NSErrorFailingURLStringKey=http://www.formspring.me/oauth/access_token?oauth_token=TOKEN_KEY_HERE&oauth_verifier=PIN_HERE, NSUnderlyingError=0x61321f0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}
我的 URL 格式是否错误或提供的参数错误或不足?
谢谢!
约翰
facebook - 如何使用 Graph API 以编程方式将事件添加到页面?
是否可以使用 Facebook Graph API 以编程方式将事件添加到页面?如果是,应该发出什么 HTTP 请求?
例如,Startup Weekend在其 Facebook 页面上有活动。可以使用Graph API 事件对象添加这些事件?
php - facebook存储访问令牌以使用php sdk进行离线访问 - 真的很困惑
我希望我们的网络应用能够使用离线访问权限更新用户墙。我现在正在兜圈子,因为我似乎无法存储访问令牌。我试过使用 example.php 但没有保留会话(我想,请原谅我是新手)
我希望它的工作方式如下:
用户点击添加 Facebook - 即我们的应用程序被用户批准(我可以使用图形 api 做到这一点)
令牌被返回,我们将其保存在数据库中(这一点我正在努力解决问题)以便稍后启用帖子。
如果有人能给我一步一步的指南,我会非常感激。请不要只是将我重定向到 facebook 的开发人员页面。
android - Android - OAuthException - 我不断收到:“必须使用活动访问令牌来查询有关当前用户的信息”
我已经使用了这个确切的代码和其他在一定程度上起作用的代码,但我不断收到以下错误:
这是代码:我使用了我返回的 access_token 并验证了它是否可以将其插入我的浏览器,并且效果很好。但是这段代码似乎要么没有使用我返回的访问令牌,要么我没有设置它。我什至尝试过 FB.setAccessToken() 方法以及 params.putString("access_token", MY_ACCESS_TOKEN)。
我想知道,因为我不需要更改网站 url 的访问令牌才能工作,所以我认为我不需要对 access_token 做任何特殊的事情,比如像在 url 中编码它一样?
谢谢你的帮助。我已经在网上搜索了几个小时的答案,但似乎没有任何答案。
javascript - 安全威胁的单一标志!FACEBOOK access_token 广播中的 open/clear
2011 年 2 月 20 日:
Facebook 今天证实,确实有一个电话公开广播了 access_token。. . 它恰好是我用来确保用户在保存到我的应用程序数据库之前仍然登录的一个调用。他们的建议是使用上个月为 canvase 和 facebook 提供的 SSL 选项。在大多数情况下,Auth 和 Auth 是安全的。
发现:
在我发帖之后,有人说这不是一个真正的问题,但我认为我确实假设了一个问题。因此,这里没有歧义,这是一个带头的问题:
由于在 Canvas Load 过程中没有从 Facebook 发送的数据在某些时候没有被泄露,包括 access_token、会话和其他可以唯一识别用户的数据,除了添加一层之外,任何人都会看到其他方式吗?即,通过 HTTPS 与 access_toekn 一起通过网络发送的密码,这将确保唯一不受用户篡改的安全性?
使用 Wireshark,我在加载 Canvas 应用程序页面时捕获了本地广播。我非常惊讶地看到 access_token 广播是公开的,任何人都可以看到。此 access_token 附加到对 Facebook OpenGraph API 的任何 https 调用。
使用 facebook 作为单击登录现在引起了我的极大关注。它存储在内存中的会话对象中,cookie 在应用程序终止时被清除,在查看 FB.Init 调用后,我看到了很多 HTTPS 调用,所以我假设 access_token 总是加密的。
但是昨晚我在状态栏中看到了一个来自简单的 http 调用的调用,其中包含 App ID,所以我觉得我应该嗅探 Application Canvas 加载序列。
今天我确实嗅到了广播,在附图中你可以看到有 http 调用,其中 access_token 被公开广播,任何人都可以访问。
我是否遗漏了什么,是我所看到的,我的解释真的正确。如果有人可以嗅探并获得 access_token,他们理论上可以通过 https 调用 Graph API,即使回调仍然需要是在 Facebook 的应用程序设置中建立的站点。
但真正的安全威胁是任何人使用 access_token 访问他们自己的站点。如果唯一被确定为安全的东西是 access_token,我看不到通过 Facebook 单点登录的价值——因为我可以清楚地看到它并不安全。永不过期的访问令牌不会更改。每个用户的 Access_tokens 都是不同的,访问另一个站点可能仅限于单个用户,但即使损害单个用户的数据也是不可接受的。
http://www.creatingstory.com/images/InTheOpen.png
回去并对此进行了更多研究:
发现:
回去重新运行画布应用程序以验证它不是我的任何未广播的代码。
在此调用中:HTTP GET /connect.php/en_US/js/CacheData HTTP/1.1
用户 ID 在 cookie 中清晰可见。所以 USER_ID 是完全可见的,但它们已经是。任何人都可以访问几乎任何页面并将鼠标悬停在图像上并查看用户 ID。所以没有大的威胁。APP_ID 也很容易获得 - 但是。. .
http://www.creatingstory.com/images/InTheOpen2.png
上面的文件通过 Facebook 发起的调用在 OPEN 中清楚地显示了 FULL ACCESS TOKEN。
我错了吗。告诉我我错了,因为我想在这件事上犯错。
我已经重置了我的应用程序密码,所以我展示了正在加载的画布页面的真实嗅觉。
附加数据 2011 年 2 月 20 日:
@ifaour - 感谢您花时间整理回复。
我对 OAuth 流程非常熟悉,并且对 signed_request 解包和 access_token 的使用有非常深刻的理解。我在服务器上执行了大量的处理,我的 Facebook 服务器端流程都是完整的并且可以正常运行,没有任何我知道的缺陷。应用程序机密是安全的,永远不会传递给前端应用程序,并且还会定期更改。我对安全非常狂热,因为我知道有很多我不知道的东西会回来咬我。
两个巨大的 access_token 问题:
这些问题涉及来自 USER AGENT(浏览器)的 access_token 的可能使用。在 Facebook JavaScript SDK 的 FB.INIT() 过程中,会创建一个 cookie 以及内存中称为会话对象的对象。该对象与 cookie 一起包含 access_token、会话、秘密以及连接的 uid 和状态。会话对象的结构既支持新的 OAuth 也支持旧的流。使用 OAuth,access_token 和状态几乎都是在会话对象中使用的。
第一个问题是 access_token 用于对 GRAPH API 进行 HTTPS 调用。如果您有 access_token,则可以从任何浏览器执行此操作:
https://graph.facebook.com/220439?access_token= ...
它会返回大量关于用户的信息。因此,任何拥有访问令牌的人都可以访问 Facebook 帐户。您还可以对用户已授予对与 access_token 绑定的应用程序的访问权限的任何信息进行额外调用。起初我认为对 GRAPH 的调用必须对应用程序设置中建立的 URL 进行回调,但我如下所述对其进行了测试,它会将信息直接返回到浏览器中。我认为添加该回调功能将是一个好主意,这会使事情变得更加紧张。
第二个问题是使用一些独特的私人安全数据来识别第三方数据库的用户,即,就像在我的情况下,我会使用单点登录来使用这个唯一的安全数据项将用户信息填充到我的数据库中(即 access_token ,其中包含 APP ID、USER ID 和带有秘密序列的散列)。这些都不是服务器端的问题。你得到一个签名请求,你用秘密解压它,进行 HTTPS 调用,得到 HTTPS 响应。当用户通过 USER AGENT(浏览器)输入必须通过 POST 存储的信息时,此唯一的安全数据元素将通过 HTTPS 发送,以便在插入数据库之前对其进行验证。
但是,如果没有通过单点登录过程提供的受保护的唯一数据片段,则无法保证未经授权的访问。access_token 是 Facebook 用来对 GRAPH API 进行 HTTPS 调用的数据。它在 USER 和 APPLICATION 方面都被认为是唯一的,并且最初通过 signed_request 包装是安全的。但是,如果它随后是明文传输的,并且如果我可以嗅探电线并获得 access_token,那么我可以伪装成应用程序并获得他们授权应用程序查看的信息。我从 Safari 和 IE 浏览器尝试了上面的示例,它在浏览器中将我的所有信息返回给我。
总之,access_token 是 signed_request 的一部分,这就是应用程序最初获取它的方式。在 OAuth 身份验证和授权之后,即 USER 登录 Facebook 然后运行您的应用程序,access_token 如上所述存储并且我已经嗅探它,因此我看到它存储在通过网络传输的 Cookie 中,导致没有唯一的安全可识别信息可用于支持与数据库的交互,或者换句话说,除非还有一条安全数据与 access_token 一起发送到我的数据库,即密码,我会无法辨别是否是合法呼叫。幸运的是,我通过 POST 使用了安全 AJAX,并且调用必须来自同一个域,但我确信有一种方法可以劫持它。
除了通过此单点登录过程添加另一层(密码)之外,或者如果有人只是与我分享我错误地阅读和分析了我的数据并且access_token 在网络上始终是安全的。
Mahalo nui loa 提前。
facebook - 从 cookie 获取访问令牌以与 Facebook Graph API 一起使用
假设我有一个用户登录到 Facebook(Cookie 保存在浏览器的缓存中),获取其访问令牌的最简单方法是什么?我正在试验 Facebook 的 Graph API,我不想费心创建应用程序来获取访问令牌(至少现在不是)。
如果我没记错的话,几天前我在浏览器上访问了http://graph.facebook.com/me(在登录时),它把我重定向到了http://graph.facebook.com/me?access_token = ...,但现在我得到了它(并且没有重定向):
不幸的是,我不能依赖以前回答的问题,因为我坚信事情最近发生了变化。
php - Soundcloud (Oauth2) API 获取访问令牌失败
我正在尝试根据 Soundcloud 登录在我的网站上授权用户。
它使用 Oauth 身份验证。
用户必须单击我网站上的一个按钮,然后被重定向到 Soundcloud 网站,并在那里登录。
之后,用户被重定向回我的网站,我必须在其中获取 accessToken。
失败并显示消息:请求的 URL 以 HTTP 代码 0 响应。
如果你需要的话,我已经丢弃了 curl 的东西:
我执行的代码:
Soundcloud API 代码:
抱歉发了这么长的帖子,希望大家能帮帮我!
python - 从 gdata.gauth.OAuthHmacToken python 对象中检索令牌和秘密
我正在关注 Google 的三足 OAuth示例代码。
具体来说,我正在查看代码的 python 版本。我被困在“升级到访问令牌”和“使用访问令牌”之间。
在“升级到访问令牌”中,有一行代码如下:
在“使用访问令牌”中,有一行代码如下:
我假设TOKEN
并被TOKEN_SECRET
打包到access_token
对象 ( gdata.gauth.OAuthHmacToken
) 中,但是如何检索它们?
谢谢!
ruby - 帮助在 Ruby 中刷新 Yahoo 的 OAuth 访问令牌
尝试在 Ruby 中刷新 Yahoo OAuth 访问令牌时,我正处于非自愿脱发的境地。
使用 OmniAuth 和 OAuth gem,我可以从 Yahoo 获取访问令牌,但它会在一小时后过期。
我正在按照 Yahoo 说明刷新过期令牌,并且始终返回 401。
如果有人可以向我展示如何使用 OAuth gem 刷新访问令牌,我将不胜感激。
javascript - 如何使用 ajax 请求发送 Twitter OAuth 访问令牌?
我想在使用 OAuth 通过“使用 twitter 签名”进行身份验证后加载用户的主页时间线。我正在使用这个库来处理身份验证部分https://github.com/jmathai/twitter-async
身份验证部分工作正常,但我不清楚如何将请求发送到 twitter api 作为给定的经过身份验证的用户。我想为用户的主时间线发出 ajax 请求,如下所示:
所以我的问题是如何将用户的访问令牌与我的请求一起发送以及令牌存储在哪里?还是我处理这个问题是错误的?