簡體   English   中英

來自重定向 URL 的 URL 參數

[英]URL parameters from a redirected URL

我正在嘗試實現一個OAuth2服務,我可以在其中接收來自服務器的授權代碼,並且服務器將我重定向到帶有參數code (where code = Authorization Token (authorization grant code))的 redirect_url 。

現在我需要使用這個授權令牌向服務器發出請求。 但是我無法從重定向的 URL 獲取令牌以在我的應用程序中使用。

索引.js

app.get('/oauth2', function(req, res){
res.redirect('https://api.codechef.com/oauth/authorize? response_type=code&client_id=CLIENT_ID&state=xyz&redirect_uri=http://localhost:3000/login');

});

使用上面的代碼片段,我可以在重定向的 URL 中獲取授權令牌,如下所示:

http://localhost:3000/login?code=3f608c5f1a019e51997e77bcXXXXXX643ea875ad&state=xyz

現在,我想獲取上述 URL 中的代碼,並將其與其他一些參數一起用於發出請求。 基本上,我需要該代碼作為我的Nodejs應用程序中的變量。

您需要創建一個與重定向 URL 匹配的 API。

匹配http://localhost:3000/login?code=<code>&state=<state>的 API 如下所示:

app.get('/login', (req, res) => { /** Logic */ })

一旦你有了它,從req獲取代碼和狀態就很簡單了:

app.get('/login', (req, res) => {
    console.log('code', req.query.code)
    console.log('state', req.query.state)
    /** Logic */
    res.json(req.query); // <-- send them back in case you want them in response
})

如果您仍然將req.query作為空對象,請在評論中告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM