我正在按照說明here(獨立帳戶)設置條帶連接。我處理授權和檢索節點服務器上的access_token
。將參數傳遞給服務器(條帶連接中的oAuth回調)
用戶可以訪問鏈接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
}));
});
用戶後授權條紋連接,他或她將被重定向到一個預先定義的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
請求傳遞一個客戶端的參數(如客戶端用戶id),或處理服務器處理在客戶端(例如,$http
GET
請求而不是訪問uri)?我想後面不是推薦的選項。
我做了兩個嘗試:
- 我試圖使用動態
REDIRECT_URI
傳遞參數,但 問題是,條紋需要全部網址需要指定 第一個(導致沒有參數可以是通過重定向 url)。 - 我試着用
$http
GET
請求訪問MY_STRIPE_URI/authorize
,但是這給了我明顯的錯誤否「訪問控制允許來源」標頭出現在所請求的資源
有什麼可以做了什麼?
聽起來很有希望。但是,我得到的錯誤:TypeError:無法設置屬性'用戶'未定義(沒有req.session ??) – JohnAndrews
那麼,你需要安裝默認[會話中間件](https://www.npmjs.com /包/快速會議)或類似的第一。 – simo