如何使用OAuth通过Javascript连接到Paypal API?

Jha*_*ham 10 javascript paypal oauth

我想制作一个小应用程序,从Paypal获取一些帐户信息,并在HTML页面中显示.我只使用HTML/CSS和Javascript,我不喜欢在服务器上运行授权流以确保安全.我不想在服务器上有令牌.

我现在有一个工作设置使用Paypal提供的OAuth代码授权流程(更多这里),但如上所述,我想从服务器中删除服务器.

我刚刚引用的页面中描述了一些方法,但似乎没有任何方法暗示可能存在隐式授权.

是否有可能使用Paypal与OAuth隐式授权或类似的东西?

(目前的答案是采用代码授权流程,这特别不是我要求的.我知道一个存在,但在这种情况下使用它是不好的,所以如果你知道一个方法而不需要向客户端提供OAuth秘密令牌.)

k1r*_*r0s 2

如果有人不明白隐式资助是什么/如何运作

当然,这对于普通的 Javascript是可行的,但不推荐。Paypal 有一个端点来提供身份验证令牌:

https://developer.paypal.com/docs/integration/direct/make-your-first-call/#get-an-access-token

您还需要获得用户的同意。。执行请求时,您应该redirect_uri向参数提供您的 web 应用程序 url。通常,开发人员倾向于将返回值存储在从 PayPal 接收响应的服务器脚本上。但这不是必需的,因为您可以读取location包含所有参数的 javascript 全局变量。

以下概述了 OAuth 2.0 身份验证流程的工作原理:

PayPal 如何使用 OAuth 2.0

编辑:

为了实现这一目标,您必须执行以下步骤:

变量:

  • APP_CLIENT_ID -> 您应用程序的 client_id
  • APP_SECRET -> 您的应用程序的密码
  • APP_RETURN_URL -> 您的应用程序的默认端点必须等于redirect_uri
  • OPEN_ID -> 返回的代码允许为特定客户创建令牌,也可以从用户检索信息

假设您在developer.paypal站点中创建了一个应用程序来获取“client_id”和“secret”,以便构建一个url将用户重定向到paypal登录表单。

  1. 将您的客户重定向至:

https://www.[sandbox.]paypal.com/signin/authorize?client_id=APP_CLIENT_ID&response_type=token&scope=openid&redirect_uri=APP_RETURN_URL

  1. 客户将登录其帐户并生成一份文件,openid该文件将通过 http:302 重定向发送回您的应用程序,redirect_uri该重定向应该是您的应用程序。

APP_RETURN_URL?code=OPEN_ID&scope=openid

  1. 回到您的应用程序中,您可以使用该代码执行创建令牌的请求..这取决于您:

您可以检索用户的个人资料数据,例如地址、电话等。

请求:curl -v https://api.sandbox.paypal.com/v1/oauth2/token -H“接受:application/json”-H“接受语言:en_US”-H“授权:承载OPEN_ID”-u “APP_CLIENT_ID:APP_SECRET”-d“grant_type = client_credentials”

响应:{“范围”:“ https://uri.paypal.com/services/identity/proxyclient https://uri.paypal.com/services/subscriptions https://api.paypal.com/v1/ payments/ .* https://api.paypal.com/v1/vault/credit-card https://uri.paypal.com/services/applications/webhooks openid https://uri.paypal.com/ payments/payouts https: //api.paypal.com/v1/vault/credit-card/ .* https://uri.paypal.com/services/identity/grantdelegation ","nonce":"2017-05-05T14:33:28Z488Zx8aUM1aSVo_wpq8IOecfccJMHptR1PVO2OpWcbA" ,"access_token":"A21AAHZCMP5vBuLMzz2m78DJGZhhpmu854amEVEO5WOavfk1GlNl_gmjSi01_69tJLRi5N_6pT-3GpRqZ81_pD1qKIAGANHMQ","token_type":"承载者","app_id":"APP-80W284485P519 543T","expires_in":32400}

  1. 然后您就可以按照以下步骤操作: https: //developer.paypal.com/docs/integration/direct/make-your-first-call/#make-an-api-call