检测用户是否在Apache或NodeJS中使用proxypass

时间:2018-06-11 20:09:14

标签: node.js apache redirect proxypass

我开发了一个在端口1234上运行的NodeJS应用程序。为了没有":1234"在地址栏中,我使用proxypass / proxypassreverse,以便URL看起来像" mysite.com/myapp /"。

一切正常但我的应用程序支持SSO。当用户尝试访问" mysite.com/myapp" ;,他被重定向到SSO时,他登录,然后SSO将他重定向到" mysite.com:1234&#34 ; (因为SSO并不了解有代理通行证。)

我在我的网页上创建了一个javascript,检测是否有":1234"在URL中,如果是这样,window.location将替换":1234" by" / myapp"。

这对我来说不是一个很好的解决方案,我认为可能有一个NodeJS甚至更好的Apache解决方案来检测到达的URL是否是":1234"一个或者#34; / myapp"之一。

提前致谢。

1 个答案:

答案 0 :(得分:0)

确定我的问题是NodeJS使用端口号向SSO发送了URL。我需要做的就是用我用于ProxyPass的字符串替换端口号:

req.get('host').replace(':' + PORT, '/node')