如何在 Express.js 服务器上执行 JWT API 请求? (edX API)
How to perform JWT API request on Express.js server? (edX API)
对于大多数人来说,这可能是一个超级简单的答案,但我是后端新手。我正在使用 Express.js 来实现我的服务器,我需要从 edX API 检索课程。以下是他们在文档中的示例请求:
curl -X GET -H "Authorization: JWT {access token}" https://api.edx.org/catalog/v1/catalogs/
而且我似乎找不到如何将其转换为 Express.js 实现的起点。我能够使用 'request-promise') 对另一个 API 执行类似的请求,但这是第一个需要 JWT Auth 的请求...
提前致谢!
我们如何使用 HTTP AUTH
执行请求?
来自这个 Github 问题:Bearer Token
Please have a look at the Request documentation. Request-Promise works
the same.
使用 request
模块:
request.get('https://some.server.com/',{"auth":{"bearer":"theToken"}})
使用 request-promise
模块:
我们知道它像 request
一样工作,所以我们可以像这样构建选项:
var options = {
"url":APIURL,
"headers":{"User-Agent":"client"},
"auth":{"bearer":ACCESSTOKEN}
}
现在您甚至可以在 Express 应用程序中创建一个路由,使用客户端令牌执行查询:
app.get("/query-with-token/:accessToken",(req,res)=>{
var accessToken = req.params.accessToken
if(accessToken){
console.log(accessToken);
RequestAPI((error, apiResponse)=>{ //this would be a custom function of yours
if(!error){res.send(apiResponse)}
else{res.send("ERROR: "+error)}
})
}else{res.send("no token supplied")}
})
(出于安全原因不推荐使用此方法)
事实证明它与上面的非常相似,但设置不同(使用 request-promise 库):
request.get('https://api.edx.org/catalog/v1/catalogs/', {
"url":APIURL,
"headers":{
"Authorization": "JWT {access token}",
"User-Agent": "client"
}
});
来源:
对于大多数人来说,这可能是一个超级简单的答案,但我是后端新手。我正在使用 Express.js 来实现我的服务器,我需要从 edX API 检索课程。以下是他们在文档中的示例请求:
curl -X GET -H "Authorization: JWT {access token}" https://api.edx.org/catalog/v1/catalogs/
而且我似乎找不到如何将其转换为 Express.js 实现的起点。我能够使用 'request-promise') 对另一个 API 执行类似的请求,但这是第一个需要 JWT Auth 的请求...
提前致谢!
我们如何使用 HTTP AUTH
执行请求?
来自这个 Github 问题:Bearer Token
Please have a look at the Request documentation. Request-Promise works the same.
使用 request
模块:
request.get('https://some.server.com/',{"auth":{"bearer":"theToken"}})
使用 request-promise
模块:
我们知道它像 request
一样工作,所以我们可以像这样构建选项:
var options = {
"url":APIURL,
"headers":{"User-Agent":"client"},
"auth":{"bearer":ACCESSTOKEN}
}
现在您甚至可以在 Express 应用程序中创建一个路由,使用客户端令牌执行查询:
app.get("/query-with-token/:accessToken",(req,res)=>{
var accessToken = req.params.accessToken
if(accessToken){
console.log(accessToken);
RequestAPI((error, apiResponse)=>{ //this would be a custom function of yours
if(!error){res.send(apiResponse)}
else{res.send("ERROR: "+error)}
})
}else{res.send("no token supplied")}
})
(出于安全原因不推荐使用此方法)
事实证明它与上面的非常相似,但设置不同(使用 request-promise 库):
request.get('https://api.edx.org/catalog/v1/catalogs/', {
"url":APIURL,
"headers":{
"Authorization": "JWT {access token}",
"User-Agent": "client"
}
});
来源: