我是OAuth的新手,一直在玩Twitter API.通过发出请求,我可以在身份验证后获取用户的凭据http://api.twitter.com/1/account/verify_credentials.xml.响应包含用户ID,屏幕名称等,但不包含电子邮件ID.
是否可以检索用户的电子邮件ID?
更新
如果您特别要求扩展权限,我相信Facebook会提供此信息.Twitter有类似的东西吗?
我在理解OAUTH-v2如何工作方面遇到了一些麻烦.
该OAuth的版本2的规格如下:
访问受保护的资源
客户端通过向
资源服务器提供访问令牌来访问受保护资源.资源服务器必须验证
访问令牌并确保它没有过期,并且其范围涵盖
所请求的资源.资源服务器用于
验证访问令牌(以及任何错误响应)的方法超出了本规范的范围,但通常涉及资源服务器和授权
服务器之间的交互或协调.
资源服务器和授权服务器之间的这种交互如何在实践中工作?
访问令牌属性和用于访问受保护资源的方法超出了本规范的范围,并由协同规范定义.
有人可以提供令牌属性的示例吗?
我正在学习像Basic,Digest,OAuth2.0,JWT和Bearer Token这样的授权.
现在我有一个问题.
您知道JWT在OAuth2.0标准中被用作Access_Token.JWT出现在RFC 7519中,而Bearer Token出现在RFC 6750中.
例如,持票人:
Authorization: Bearer <token>
Run Code Online (Sandbox Code Playgroud)
我曾经通过AJAX向服务器发送令牌或者将令牌添加到url的查询字符串中.我知道也可以通过将令牌添加到请求标头来发送令牌.这是否意味着应该将令牌添加到Authorization Bearer标头?
你能告诉我JWT和Bearer Token之间的关系吗?非常感谢.
这个问题是关于尝试了解在Android等移动平台上实现oauth所涉及的安全风险.这里假设我们有一个Android应用程序,其中包含嵌入在代码中的消费者密钥/秘密.
假设一个消费者的秘密受到了损害,并且黑客已经掌握了它,这会带来什么后果?
妥协的消费者秘密假设
我正确地指出,受损的消费者秘密对用户的安全性或用户正在与之交互的OAuth启用的提供商中存储的任何数据没有影响.数据本身不受损害,黑客无法检索.
黑客需要获得一个有效的用户访问令牌,这是很难得到的.
一个黑客可以用一个妥协的消费者秘密做什么?
我在说明以下内容时也是正确的:
最终用户的影响
在假设中
可能发生以下情况:
OAuth使用者(我的应用程序)影响:
我的应用程序(包含消费者秘密)需要更新,否则我的所有客户都无法授权我的应用程序代表他们做请求(因为我的消费者秘密将不再是有效的).
委派所有OAuth流量
尽管可以通过中间网络服务器委派大量OAuth交互(进行OAuth舞蹈并将访问令牌发送给用户),但也必须代理所有服务交互,作为消费者密钥签署每个请求需要/ secret.这是将消费者密钥/秘密保留在移动应用程序之外,并存储在中间网络服务器上更安全的地方的唯一方法吗?
替代
方案此代理有替代方案吗?是否可以将消费者秘密存储在中间网络服务器上,并且具有某种机制,即Android应用程序(在市场上发布并正确签名)可以向中间网络服务器发出安全请求以获取消费者秘密并存储它应用程序内部?可以实现一种机制,中间网络服务器"知道"这是一个请求获取消费者秘密的官方Android应用程序,并且中间网络服务器只会将消费者秘密分发给该特定的Android应用程序吗?
OAuth术语一直困扰着我很长一段时间.OAuth授权是否有人建议或者是身份验证?
如果我错了,请纠正我,但我一直认为授权是允许某人访问资源的行为,但OAuth似乎没有任何实际允许访问给定资源的用户的实现.所有OAuth实现都在谈论为用户提供令牌(已签名且有时加密).然后,每次调用后都会将此令牌传递给后端服务端点,在该端点检查其有效性,同样不是OAuth关注点.
OAuth身份验证(每篇文章都说不是)我要求用户提供凭据,这反过来证明用户应该/不应该有权访问?
因此,似乎OAuth不是授权NOR身份验证,因为这些必须由其他进程执行.那到底是什么?这是一个传递令牌的过程吗?真的没有特别含义的绒毛词吗?
在没有听起来神秘和迷信(幽灵和地精)的情况下很难提出关于这个主题的问题,所以我希望回答这个问题也不是一件简单的事情.输入您自担风险.
我有一个使用Oauth 2与Facebook集成的应用程序.
我可以使用FB进行授权并完美地查询他们的REST和Graph API,但是当我授权使用FB创建活动的浏览器会话时.然后我可以很好地注销我的应用程序,但是与FB的会话仍然存在,因此如果其他人使用浏览器,他们将看到以前的用户FB帐户(除非之前的用户也手动注销了FB).
我要授权的步骤是:
如果用户的浏览器还没有活动的FB会话,则此步骤将打开Facebook登录/连接窗口.一旦他们登录到Facebook,他们就会使用代码重定向到我的网站,我可以交换一个oauth令牌.
现在我有一个Oauth Token,用户的浏览器登录到我的站点,然后登录到FB.
让我们说我的用户想要退出我的网站.FB条款和条件要求我执行单点登录,因此当用户退出我的站点时,他们也会退出Facebook.有人认为这有点愚蠢,但我很乐意遵守,如果有任何方法可以实现这一点.
我看到的建议是:
答:我使用Javascript API注销:FB.Connect.logout().好吧,我尝试使用它,但它不起作用,我不确定它究竟是怎么做的,因为我没有在我的网站上以任何方式使用Javascript API.会话不是由Javascript API维护或创建的,所以我不确定它应该如何使它过期.
B.使用[LINK:facebook.com/logout.php].这是由Facebook论坛的管理员提出的.给出的示例与获取FB会话(非oauth)的旧方法有关,所以我认为我不能在我的情况下应用它.
C.使用旧的REST api expireSession或revokeAuthorization.我尝试了这两种方法,虽然它们确实使Oauth令牌过期,但它们不会使浏览器当前使用的会话无效,因此它没有效果,用户也没有注销Facebook.
我真的有点松散的结局,Facebook文档不完整,含糊不清,非常差.论坛上的支持是不存在的,目前我甚至无法登录到facebook论坛,除此之外,他们自己的FB Connect集成甚至不能在论坛本身上运行.不会激发很多信心.
您可以提供任何帮助.德里克
PS.不得不将HTTPS更改为LINK,没有足够的业力来发布可能足够公平的链接.
我一直在使用Oauth,但从未完全确定这四个术语(以及每个术语的功能)之间的区别.我经常看到(例如在Twitter Public API中)
Consumer key:
Consumer secret:
Access token:
和
Access token secret:
但我从来不知道他们到底做了什么.我知道Oauth有能力授权应用程序(让他们代表用户行事)但我不理解这四个授权条款之间的关系,并且会喜欢解释.
基本上,我不确定如何生成访问令牌或令牌秘密,存储它们的位置,以及它们彼此之间或与消费者密钥和秘密之间的关系.
谢谢
似乎许多应用提供商正在使用OAuth2来允许API访问,例如Twitter和Facebook.有没有人使用一个好的库来进行OAuth2处理,这个处理通常足以在所有应用程序中使用?
设计authenticate_user!方法在哪里设计?
我一直在寻找它,到目前为止还没有找到它.