我可以使用OAuth2和Rails通过reddit fine登录到我的localhost站点,但是当我试图发出后续(必需的)POST请求以获取进行实际API调用所需的访问令牌时,我得到了响应‘invalid _ grant’。OAuth reddit文档(这里)说invalid_grant的意思是“代码已经过期或者已经被使用了”。
但我确信它没有被重用,我已经移动了代码以确保它不能运行两次,并且正在监视控制台。更改POST请求中的其他值会给出401,因此请求本身很好(我认为)。
omni auth _ callbacks _ controller . Rb
@result = HTTParty.post("https://ssl.reddit.com/api/v1/access_token",
:body => {
:state => params[:state],
:redirect_uri => "http://localhost:3000/users/auth/reddit/callback",
:code => params[:code],
:grant_type => 'authorization_code',
},
:basic_auth=> {
username: ENV['REDDIT_KEY'],
password: ENV['REDDIT_SECRET']
}
)
logger.info(@result.to_json)
我尝试过的事情:
如果有人有任何想法,将不胜感激。在这上面花了一天的大部分时间,而且变得有点可笑。谢了。
好了,起作用了。哇这太尴尬了...因此,我使用的omniauth-reddit gem实际上为您获得了令牌以及授权本身——使用该gem根本不需要整个额外的步骤,因此它实际上被使用了不止一次,因此产生了invalid_grant。
更糟糕的是,我今天早些时候在响应中看到了“令牌”,并使用它测试了一个直接的应用编程接口调用,但一定是在某种程度上搞乱了语法,因为格式不是我所期望的(另外,我使用的指南中提到了“授权令牌”和“访问令牌”,所以我认为是前者),所以我一整天都在徒劳地追逐。
我想用retforIt从服务器得到响应。下面是一些代码: 怎么了?我在哪里可以找到改装文档?是什么?请帮忙
我正在为我的web应用程序实现azure,并尝试通过下面的openId connect教程获得访问令牌 内容类型:application/x-www-form-urlencoded GRANT_TYPE=授权代码 client_id=2D4D11A2-F814-46A7-890A-274A72A7309E 请帮帮我 提前致谢
下面是我的代码, 在我的实证测试中,我可以通过将作用域设置为 然而,当我想访问用户的谷歌驱动器时,我遵循了开发文档中的说明 当应用程序执行时,Android-Studio中的日志猫总是提到异常事件GoogleAuthException发生,并且事件消息为“未知”。 在Android中获得谷歌驱动器访问令牌的正确方法是什么?多谢.
下面是security.xml文件,我正在使用它合并spring-security-oauth2。 我必须在spring-security.xml文件中做哪些更改,以便在JSON中发送查询参数?
我想使用上传一个pdf文件到Google Drive,用于自动测试目的。 我已经在Google云平台上创建了一个帐户(获得了客户端ID和机密),并启用了Google Drive API。 谢了。
需要使用passport为laravel构建api系统。在拉威尔。2 Oauth 2集成有一个单独的类授权程序,用于执行通过访问令牌获取用户数据的操作方式 但在passport中,没有基于访问令牌获取用户详细信息的单独方法。有人能帮我吗?