提问人:kaay 提问时间:5/11/2022 更新时间:5/11/2022 访问量:859
Nodejs - 在服务器端获取客户端 URL(DNS 名称)
Nodejs - Get client url (dns name) on server side
问:
我想获取客户端 url,在服务器端的身份验证过程后继续(重定向): 在我的脚本中:
...
server.register({
register: require('./libs/hapi-passport-saml'),
options: {
callbackUrl: /* I want to put client url her */,
issuer: ....,
...
}
}
...
谢谢
答:
0赞
Kaleem Shoukat
5/11/2022
#1
你可以这样做: 首先需要 url 包在顶部:
const url = require('url');
然后,您可以在函数中使用客户端 url:
const path = url.parse(req.url).path;
评论
0赞
kaay
5/11/2022
谢谢你@kaleem。我有这个:“ReferenceError:req 未定义”
0赞
Abdurrahim Ahmadov
5/11/2022
#2
您可以使用 和 属性获取完整的 URL。req.hostname
req.originalUrl
app.get('/foo', (req,res)=>{
const clientUrl = req.hostname + req.originalUrl;
console.log(clientUrl);// yourdomainname.com/foo?s=4 full url string
})
在快乐的框架中,你可以使用,现在你可以在任何地方使用你想要的任何地方server.app.url=request.info.hostname+request.path
server.app.url
评论
0赞
kaay
5/11/2022
谢谢。如何将其添加到“server.register”中?
0赞
Abdurrahim Ahmadov
5/11/2022
您可以将其保存在 App.locals 对象中,例如: 并且可以在任何地方使用它。设置后,app.locals 属性的值将在整个应用程序的整个生命周期内持续存在。如果这能解决您的问题,请告诉我app.locals.url = req.hostname + req.originalUrl
0赞
Abdurrahim Ahmadov
5/11/2022
@kaay在快乐框架中,你可以使用server.app=request.info.hostname+request.path
0赞
kaay
5/12/2022
你好,我试着这样做,但是:),在server.ext('onPreResponse', function (request, reply) { console.log(request.info.hostname); // ==> I have the hostname ;) .... }) ... server.register({ register: require('./libs/hapi-passport-saml'), options: { callbackUrl: /* how can do it here */, issuer: ...., ... } } ...
0赞
Abdurrahim Ahmadov
5/12/2022
@kaay上面提到的,将它()分配给任何你想要的地方,并使用它( )request.info.hostname+request.path
server.app.url
callbackUrl: server.app.url
评论