在尝试使用Facebook的移动身份验证时,我意识到他们现在没有设置任何会话密钥cookie,只处理访问令牌.从我收集到的内容来看,访问令牌是新OAuth2系统的工作方式,使会话密钥略微弃用.我唯一的选择是更新代码以使用访问令牌,还是有一种方法让我在只有访问令牌时获取会话密钥?
我目前正在开发一个基于Web的邮件服务(它不是一个邮件客户端,但需要解释很多).但是在此之前我从未使用oauth,但它似乎是要走的路,我已经将我的简单类基于sampel代码.但是,示例代码几次没有提供签名解决方案,或者我错过了它.
所以基本上我的问题是,每当我登录时,我需要再次授权gmail,而我已经看到其他服务你曾经这样做过,之后你只需登录并立即重新定向,而不再接受.
编辑:为了澄清,我正在使用oauth登录和IMAP,这是愚蠢的吗?我认为这是最好的方式,因为当我的所有应用程序真正做到的都是通过oauth围绕谷歌应用程序imap时,将OpenID和oauth连接到同一用户似乎很奇怪.我认为tungle.me以这种方式工作,因为我只需要在那里进行授权,下次谷歌立即重定向我,我希望我的应用程序以这种方式工作.
编辑2:进一步搜索后似乎授权是第一次然后我应该使用身份验证,因为英语不是我的第一语言我虽然他们的意思相同.所以问题就在于,当已经创建帐户的用户再次登录时,如何通过谷歌进行身份验证,这样我就不需要每次都生成新的令牌.
我构建了一个FB应用程序,它执行以下操作:
1)将初始请求重定向到FB,以便进行身份验证/登录,如下所示:
2)在servlet中,获取"code"参数(这是signed_request?):
String signedReq = request.getParameter("code");
// the String retrieved from the code parameter is:
// 3DaDJXq1Mlsq67GbeudlUxu7bY5Um4hSJlwzoPCHhp4.eyJpdiI6Ikc1ODNuRjZXbnhCb0hUV1FEMVNTQUEifQ._iXKxSGiNHfc-i5fRO35ny6hZ03DcLwu4bpAkslqoZk6OfxW5Uo36HwhUH2Gwm2byPh5rVp2kKCNS6EoPEZJzsqdhZ_MhuUD8WGky1dx5J-qNOUqQK9uNM4HG4ziSgFaAV8mzMGeUeRo8KSL0tcKuq
Run Code Online (Sandbox Code Playgroud)
3)如何从此String获取OAuth令牌?
提前致谢!中号
我正在尝试使用2脚OAuth作为身份验证机制将iPhone应用程序连接到PHP API.我正在使用http://code.google.com/p/oauth/上的PHP和Objective-C 2.0库.问题是,当我尝试使用Objective-C发出GET请求时,它不会在请求URI中包含OAuth参数,就像PHP库在发出OAuth GET请求时所做的那样:
http://www.mysite.com/oauth/index.php?oauth_consumer_key=key&oauth_nonce=XXXXXXXX&oauth_signature=XXXXXXXXXXX%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1309863754&oauth_version=1.0
相反,它将OAuth参数放在Authorization标头中:
Authorization: OAuth realm="", oauth_consumer_key="XXXXX", oauth_token="XXXX-XXXX",
oauth_signature_method="HMAC-SHA1", oauth_signature="XXXXXXXX",
oauth_timestamp="1309863855", oauth_nonce="XXXX-XXX-XX-XX-XXXXXXX", oauth_version="1.0"
Run Code Online (Sandbox Code Playgroud)
我想这两种方式对于OAuth规范同样有效,对吧?
用PHP读取Authorization标头的最佳方法是什么?
我正在开发一个使用OAuth的appengine应用程序.当然,我正在同时处理应用程序的多个版本 - 用于开发的本地版本,暂存版本和部署版本.
要使用这些,我需要三组独立的OAuth使用者密钥/机密,因为在提供商的站点上定义了身份验证回调.
我想知道提供商是否有办法为给定的应用程序提供多个密钥/秘密 - 这似乎比每次设置一个新的应用程序更有意义.(当然,它需要提供者实现这一点,但实现它似乎很自然,我还没有看到它).
更一般地说,使用什么标准方法来解决这个问题 - 我的猜测是注册多个应用程序并在应用程序中使用逻辑来确定它是处于开发模式,登台还是部署.欢迎任何想法.
我使用图形api来连接用户并在其墙上发布事件.
但如果我作为一个页面连接,我会收到以下错误消息:"您需要以用户身份连接,而不是作为运行此应用程序的页面"
但我可以在粉丝页面上发布我的活动.
这是我的TOKEN_URL
我能做多少才能在我的粉丝页面上发布.我怎样才能启用它?
我正在非常困难地让OAuth gem正常运行Flickr API.我正在尝试使用以下代码生成请求令牌:
user_oauth = OAuth::Consumer.new(consumer_key, consumer_secret, :site => "https://secure.flickr.com/services")
request_token = user_oauth.get_request_token(:oauth_callback => callback_url)
Run Code Online (Sandbox Code Playgroud)
每当我运行此代码时,它会在调用.get_request_token时抛出异常"OAuth :: Unauthorized(404 Not Found)".
我得到了我的终点:http://www.flickr.com/services/api/misc.overview.html
我的OAuth gem正在使用默认的request_token路径,该路径可以根据以下内容与Flickr一起使用:http://www.flickr.com/services/api/auth.oauth.html#request_token我也尝试使用此链接使用的端点( http://www.flickr.com/services)
当我在OAuth :: Consumer对象上调用.request_token_url时,它会返回"https://secure.flickr.com/services/oauth/request_token",我可以在浏览器中访问它.认为flickr API可能只适用于GET请求,我将OAuth方法更改为GET,但仍然无法正常工作.
我之前在不同的API上使用过这个完全相同的代码并且它有效,所以我不确定此时该做什么.任何帮助,将不胜感激!
尝试测试新的Open Graph Beta以发布新动作.
我正在关注官方教程
它说要发布你将使用此POST的动作
For example, sending a POST to:
https://graph.facebook.com/me/YOUR_NAMESPACE:cook
?recipe=OBJECT_URL&access_token=ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)
但是在JS调用中.没有访问令牌
FB.api('/me/YOUR_NAMESPACE:cook' +
'?recipe=http://example.com/cookie.html','post',
function(response) {
..........
}
Run Code Online (Sandbox Code Playgroud)
当我尝试发布自己的操作时出错.我已publish_actions通过该应用验证了该权限
我在请求标头中设置oauth_callback URL,当我在Twitter中执行此操作时,它工作正常,用户被重定向到回调URL.但是使用Tumblr的API,将忽略回调URL,并将用户重定向到默认URL.有没有人经历过这个?除了标题以外的其他地方我应该设置这个吗?我尝试将其作为参数传递,但这也没有真正起作用.
任何帮助,将不胜感激.
任何人都可以通过使用OpenID + OAuth提供如何让用户登录雅虎的电子邮件的示例吗?我使用socialauth所以java会成为首选语言.