2015-02-27 12 views
6

Używam poddomeny npm i utrzymuję routing w czystości Chciałbym zrobić coś takiego.Wyraźne wykrycie, jeśli żądanie pochodzi z poddomeny?

router.get('/login_success',function(req,res) { 

    if(req.subdomain) { 
    res.redirect('/'); 
    } else { 
    res.sendStatus(200); 
    } 

}); 

W powyższym przykładzie, gdy użytkownik loguje się do aplikacji poprzez subdomeny, przekierować do głównego subdomeny co powoduje, że profil.

Jeśli użytkownik loguje się przy użyciu trasy innej niż poddomena, renderuje widok przy użyciu ajax, więc muszę wysłać komunikat o statusie 200, informujący, że użytkownik jest ważny.

Uznałem, że jest to o wiele bardziej czyste niż posiadanie dwóch oddzielnych tras wywołań zwrotnych dla każdego.

Moje pytanie brzmi: czy istnieje sposób na wykrycie, czy zapytanie pochodzi z subdomeny lub domeny regularnej.

Wiem, że jest req.headers.origin, ale zastanawiam się, czy istnieje bardziej względny sposób robienia tego, więc podczas przechodzenia między produkcją lokalną a produkcyjną nie muszę tego zmieniać.

Odpowiedz

11

Użyj req.subdomains, to da ci listę poddomen używanych w adresie URL. Here's skąd otrzymałem informacje.

+0

Wow Byłem blisko, próbowałem 'req.subdomain' po prostu to przetestowałem i nie dostałem nic. Sprawdziłem również obiekt 'req' i nie mogłem znaleźć niczego. Ale zadziałało, wspaniały człowieku! –

+1

Nie ma problemu, wszystkie inne problemy zawsze odnoszą się do dokumentów, http://expressjs.com/4x/api.html – MJPinfield