【发布时间】:2016-01-16 22:00:39
【问题描述】:
我正在按照here(独立帐户)的说明设置 Stripe Connect。我在我的节点服务器上处理access_token 的授权和检索。
用户可以访问链接MY_SERVER_URI/authorize,并将被重定向到预定义的条带AUTHORIZE_URI:
app.get("/authorize", function(req, res) {
// Redirect to Stripe /oauth/authorize endpoint
res.redirect(AUTHORIZE_URI + "?" + qs.stringify({
response_type: "code",
scope: "read_write",
client_id: CLIENT_ID
}));
});
用户授权 Stripe Connect 后,他或她将被重定向到预定义的 REDIRECT_URI,在这种情况下等于 MY_SERVER_URI/oauth/callback,其中执行以下脚本:
app.get("/oauth/callback", function(req, res) {
var code = req.query.code;
// Make /oauth/token endpoint POST request
request.post({
url: TOKEN_URI,
form: {
grant_type: "authorization_code",
client_id: CLIENT_ID,
code: code,
client_secret: API_KEY
}
}, function(err, r, body) {
var accessToken = JSON.parse(body).access_token;
// Do something with your accessToken
// For demo"s sake, output in response:
res.send({ "Your Token": accessToken });
});
});
现在这里一切正常,应用程序能够获取accessToken。但是,此accessToken 需要保存并与从客户端授予访问权限的用户匹配。
因此,我的问题归结为,如何在 oauth/callback GET 请求中传递客户端参数(如客户端 userId),或在客户端处理服务器处理(例如 $http GET 请求而不是访问 uri)?我猜后者不是推荐的选项。
我做了两次尝试:
- 我尝试使用动态
REDIRECT_URI传递参数,但是 问题是Stripe要求需要指定所有网址 首先(导致重定向中不能传参数 网址)。 - 我尝试使用
$httpGET请求访问MY_STRIPE_URI/authorize,但这给了我一个明显的错误请求的资源上没有“Access-Control-Allow-Origin”标头时间>
可以做什么?
【问题讨论】:
标签: javascript angularjs node.js oauth stripe-payments