【发布时间】:2014-07-05 19:52:17
【问题描述】:
我是 apigee 的新手。我需要在我的代理中进行标注以从谷歌融合表中获取数据。 FT 服务需要使用 oath 2.0 进行安全呼叫。 我已经使用自定义代理制作了这个工作流程(没有任何 OAUTH 策略,并且在键值映射中存储令牌、刷新令牌和到期)
我还制作了 js 来计算过期时间和条件标注以刷新令牌。 我知道这不是正确的方法,但我仍然不知道如何使用构建 Oauth 策略进行此调用。 :( 谷歌方面的 oauth 流程对我来说很清楚,但无法理解我在哪里存储价值以及如何将 oauth 配置为本地方式......
我从 github 成功部署了 oauth-authcode 示例并使其正常工作,但是当我更改 https://accounts.google.com/o/oauth2/auth 上的默认目标端点 URL 并替换我的 client_id 时,我收到错误“无效的客户端 ID:XXXXX.apps.googleusercontent.com。ClientId 是无效”。
据我了解,第一个问题是获取授权码 我必须拨打 google oauth 之类的电话:
https://accounts.google.com/o/oauth2/auth
?response_type=code
&redirect_uri={URL that obtain access code}
&client_id=XXXXX.apps.googleusercontent.com
&scope=https://www.googleapis.com/auth/fusiontables
&access_type=offline
&approval_prompt=force
&login_hint=MYEMAIL@gmail.com
&state=ANYSTATE
然后google将授权码重定向到redirect_uri为
{redirect_uri}?code=ACCESSCODE&state=ANYSTATE
我将代理 /oauth20 作为 bakckend 并将其指向 redirect_uri。
如何在此端配置 oauth 策略来存储此代码?
我创建产品 Fusion 并将 API 代理“/oauth20”添加为资源 我还创建了 Developer App Fusion。
我必须在开发者应用程序中填充哪些 URL 作为回调 URL?
我必须将哪个 url 用作 oauth 策略的重定向 url,如何存储我用于 google 的客户端 ID 和客户端密码和范围? 我无法在开发者应用中编辑消费者密钥和消费者秘密
那么我的api代理获取授权码。
如何更改此代码以访问令牌?
在我的应用程序中,我发布了 POST:
https://accounts.google.com/o/oauth2/token
code={code}
client_id={ClientID}
client_secret={ClientSecret}
redirect_uri=https://vatsenko-test.apigee.net/v1/oauth20/oauth/authorize
grant_type=authorization_code
然后提取令牌
$.access_token
$.refresh_token
$.expires_in
有什么方法可以手动配置 oauth 流程来获取令牌? (我的意思是硬编码 client_id、client_secret 和获取令牌并将其存储到 apigee 的代码,然后在 callout 中仅制定 verifyaccesstoken 策略)
【问题讨论】: