Tag: 主机头

使用Express和Node,如何在子域/主机头之间维护会话

我有一个节点服务器响应请求,并根据主机头redirect用户。 用法是静态/主页站点位于www,每个用户都有自己的子域(即www.example.com和site.example.com)。 路由是根据site.js。 当用户没有login时,他们被redirect到login。 我发现当用户被redirect到他们的子域时,会话不被维护。 我想这是预期的,但我想知道是否有一种方法来维护两个子域相同的会话。 我希望如果他们login并返回到www.example.com,他们会看到一个不同的视图,其中包括一个链接注销/他们的仪表板,等我现在的解决方法,我想,只是创build会话在他们的子域名,如果他们确实返回到www它就好像他们没有login。 任何人之前处理过这个问题,或者有如何处理会话的答案? 我认为这个问题可能在users.js,因为它不是一个相对path,我redirect到'http://site.example.com'… 这里是相关的代码(用户查找是使用MongoDB完成的,因为它的工作正常,所以我把它放在了外面 – 调用这个服务的行是users.authenticate)… server.js: app.configure -> app.set "views", "#{__dirname}/views" app.set "view engine", "jade" app.use express.bodyParser() app.use express.methodOverride() app.use express.cookieParser() app.use express.session { key: "KEY", secret: "SECRET", store: new MemoryStore(), cookie: { domain: 'example.com', maxAge : 1000*60*60*24*30*12 } } app.use express.static "#{__dirname}/public" app.use express.logger "short" app.use express.favicon […]

如何使用Node和Express来实现客户/客户端风格的子域名

如何让客户使用其域名中的组织名称访问SaaS? 例如,Web应用程序example.com可能有2个客户,OrgA和OrbB。 login后,每个客户都会被redirect到他们的网站orga.example.com / orgb.example.com。 一旦包含子域的请求到达节点服务器,我希望用一个“/”路由来处理请求。 在路由处理器内部,它只是检查主机头,并将子域视为组织的参数。 就像是: app.get "/*", app.restricted, (req, res) -> console.log "/* hit with #{req.url} from #{req.headers.host}" domains = req.headers.host.split "." if domains org = domains[0] console.log org # TODO. do something with the org name (eg load specific org preferences) res.render "app/index", { layout: "app/app" } NB。 域数组中的第一项是组织名称。 我假设没有端口出现在主机头,现在,我不考虑如何处理非组织的子域名(如www,博客等)。 因此,我的问题更多的是如何configurationnode […]