大佬教程收集整理的这篇文章主要介绍了通过 Rails Oauth2 gem 建立 Ouath2 与 Microsoft Dynamics 的连接时遇到问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是使用 Oauth2 进行身份验证的新手,希望有人可以就如何使用 oauth2 gem 正确执行身份验证以获取 Microsoft Dynamics 令牌提供一些指导。
我已经能够通过 Postman 授权和获取令牌,但是由于这些类型的应用程序极大地促进了整个过程,因此很难将这些内容映射到代码中,尤其是当概念是新的时。
对于访问令牌,我可以使用:
我已经在网上尝试了各种示例,但我从 oauth2 收到了一个非描述性错误,例如:
OAuth2::Error():
或者,在其他情况下,更特别的东西:
OAuth2::Error ({"code"=>"requestDataInvalID","message"=>"请求数据无效。"}: {"error": {"code": "requestDataInvalID","message": "请求数据无效。"}}):
有没有人有任何关于如何成功获得令牌的真实可行的例子?
终于破解了。
必须分别将资源元素移出身份验证和访问令牌网址:
https://login.windows.net/<CUSTOMER_IDENTIFIER_HASH>/authorize
https://login.windows.net/<CUSTOMER_IDENTIFIER_HASH>/oauth2/token
那时,我将客户端设置为:
client = OAuth2::Client.new(
client_id,client_secret,site: base_url,grant_type: "client_credentials",resource: "https://api.businesscentral.dynamics.com",authorize_url: auth_url,token_url: token_url,)
上面的base_url是:
https://api.businesscentral.dynamics.com/v2.0/<CUSTOMER_IDENTIFIER_HASH>
然后,我调用客户端以获取 auth_code 并且必须显式传递资源参数:
client.auth_code.authorize_url(:redirect_uri => 'http://localhost:8080/oauth2/callBACk',resource: "https://api.businesscentral.dynamics.com")
我不确定获取token时是否需要资源,但最终我是这样获取的:
token = client.password.get_token(<AUTHENTICATION_LOGIN>,<AUTHENTICATION_PASS>,resource: "https://api.businesscentral.dynamics.com")
然后我可以使用令牌来执行获取命令:
token.get('https://api.businesscentral.dynamics.com/v2.0/Sandbox/api/v2.0/companies(<COMPANY_ID_HASH>)/customers',:headers => { 'Accept' => 'application/json' })
我有一种感觉,我必须对最终 get 命令的 url 进行一些清理,但它似乎是这样工作的。
以上是大佬教程为你收集整理的通过 Rails Oauth2 gem 建立 Ouath2 与 Microsoft Dynamics 的连接时遇到问题全部内容,希望文章能够帮你解决通过 Rails Oauth2 gem 建立 Ouath2 与 Microsoft Dynamics 的连接时遇到问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。