2015-05-30 20 views
7

Używam stosu MeanJS do opracowania aplikacji internetowej. Problem, który mam, polega na tym, że mój regularny proces rejestracji ma kilka unikalnych parametrów, które nie są wspólne dla profilu użytkownika Oauth. Tak więc, kiedy mam użytkownika, aby zarejestrować się z Facebookiem, przenosimy je do nowego formularza rejestracji, który ma wypełnić dodatkowe parametry, a następnie kliknij "zarejestruj się z Facebookiem".Jak przesłać i przetworzyć żądania z wnioskiem Oauth?

trasach są takie same, jak znaleźć tutaj szlaki wspólne MeanJS: https://github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js

szczególności te linie:

app.route('/auth/facebook').get(passport.authenticate('facebook', { 
    scope: ['email'] 
})); 

app.route('/auth/facebook/callback').get(users.oauthCallback('facebook')); 

Co chciałbym zrobić, to mieć dodatkowe parametry dołączone do wniosku obiekt, tak, że gdy proces uwierzytelniania osiągnie exports.saveOAuthUserProfile wewnątrz: https://github.com/meanjs/mean/blob/master/app/controllers/users/users.authentication.server.controller.js ta funkcja będzie mogła uzyskać dostęp do tych parametrów i zapisać je jako część modelu użytkownika.

Próbowałem dołączanie parametrów do żądania GET i dostępu

req.params.paramId

ale to nie będzie działać, ponieważ nie można zarejestrować param ładowane wniosek z facebook API (lub przynajmniej wydaje się być w ten sposób).

I czytałem gdzie indziej na temat StackOverflow, że można załadować państwo żądania, ale wydaje się to naprawdę dziwne dla mnie. Oto link do tego: Facebook OAuth: custom callback_uri parameters

Tak więc, wszelkie wskazówki dotyczące ładowania dodatkowych danych do żądania Oauth, tak aby po zapisaniu profilu użytkownika mogę uzyskać do niego dostęp i zapisać go, byłoby świetnie.

Dzięki chłopaki.

Odpowiedz

2

Nie jest dla mnie jasne, co chcesz osiągnąć. Co to są "dodatkowe" pola i dlaczego nie wyprowadzacie pól bezpośrednio z profilu użytkownika? Około 98% implementacji logowania FB, które widziałem, wystarczy użyć przycisku "Zaloguj się za pomocą Facebooka" i uzyskać dane użytkownika podczas samego procesu OAuth, a nie ręcznie wprowadzone przez użytkownika.

Z passport-facebook na przykład, że to możliwe, że

a) Konfiguracja zwyczaj celownicze

b) Zasil obiekt profil z danymi niestandardowego oscyloskopu

Obiekt profile następnie automatycznie wstawi dodatkowe wymagane pola i nie będzie konieczne modyfikowanie samego obiektu żądania.

+0

Celem jest określenie przez użytkownika niektórych niestandardowych danych, które nie są w ogóle częścią systemu profili na Facebooku, ale są to dane będące częścią obiektu użytkownika tego systemu (i wymóg rejestracji). Chcę, aby użytkownik mógł wprowadzić te dodatkowe dane podczas rejestracji, nawet na Facebooku. – Devnetics

+0

Połącz oba profile FB i niestandardowe wartości w obiekcie sesji. – Tobi