Joh*_*ews 1 javascript oauth node.js angularjs stripe-payments
我设立条纹连接的解释这里(独立账户).我处理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
}));
});
Run Code Online (Sandbox Code Playgroud)
用户授权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 });
});
});
Run Code Online (Sandbox Code Playgroud)
现在这里的一切正常,应用程序能够得到accessToken.但是,这accessToken需要保存并与从客户端授予访问权限的用户匹配.
因此,我的问题归结为,如何在oauth/callback GET请求中传递客户端参数(如客户端userId),或者在客户端处理服务器处理(例如$http GET请求而不是访问uri)?我想后者不是推荐的选项.
我做了两次尝试:
REDIRECT_URI,但问题是Stripe要求首先指定alle url(导致重定向url中不能传递任何参数).MY_STRIPE_URI/authorize带有$http GET请求,但这给了我明显的错误请求的资源上没有'Access-Control-Allow-Origin'标头可以做些什么?
小智 10
您必须将您的用户ID作为"state"参数传递,Stripe将在回调时返回它.我发现避免会话的唯一方法