2013-08-27 16 views
8

Chciałbym użyć narzędzia Meteor.loginWithGoogle() do uwierzytelnienia użytkowników, ale czy istnieje sposób ograniczenia go do konkretnej domeny (Google Apps)?Ograniczenie wbudowanego uwierzytelniania Google Meteor.js do domeny

Mogę sprawdzić, czy użytkownik jest uwierzytelniony za pomocą zwróconego e-maila, ale czy jest jakiś sposób, aby to zrobić na etapie logowania z pewnym parametrem logowania Google?

+0

Co rozumiesz przez "ograniczenie go do określonej domeny"? Masz na myśli, że chcesz tylko użytkowników Gmaila z adresem .com lub .co.uk? A może masz na myśli, że twoja aplikacja działa w wielu domenach i chcesz, aby tylko Google Auth działał na jednym z nich? Coś innego? – BenjaminRH

+0

Mam na myśli domenę Google Apps, więc możesz logować się tylko z kontem @ .com, a nie z żadnym innym kontem Google. – kennysong

Odpowiedz

9

Nie sądzę, że to możliwe w tej chwili. Istnieje ciąg dalszy, aby częściowo dodać tę funkcję: https://github.com/meteor/meteor/pull/1332 Wydaje się, że problem z tym żądaniem pobierania polega tylko na naprawie strony klienta (tj. Wyświetla tylko konta z wybranej domeny, gdy użytkownik się loguje). Ale nie dodaje żadnych kontroli po stronie serwera.

Im stosując następujące obejście: W pliku .js w folderze sever Mam następujący kod:

Accounts.validateNewUser(function (user) { 
    if(user.services.google.email.match(/example\.org$/)) { 
     return true; 
    } 
    throw new Meteor.Error(403, "You must sign in using a example.org account"); 
}); 

Zapobiega to rachunki są wykonane z różnych domen z example.org.

+7

Jest kompilowany: 'Accounts.config ({restrictCreationByEmailDomain: 'mydomain.com'})' – Jaap

1

Jeśli chcesz zezwolić tylko wybranym użytkownikom z Twojej domeny, możesz również dodać kolekcję białej listy, która definiuje identyfikatory użytkowników z Twojego konta Google Apps. W ten sposób możesz ograniczyć dostęp tylko do niektórych użytkowników, uzyskać funkcję jednokrotnego logowania oraz wstępnie ustawić role użytkowników i właściwości swojej aplikacji, zanim jeszcze użytkownicy utworzą swoje konta.

Do tego celu można użyć wywołania zwrotnego Accounts.onCreateUser(function(options, user){}), ponieważ pozwala to zdefiniować dodatkowe właściwości użytkownika.

Powiązane problemy