Я настраиваю этот проект Sails, где я использую PassportJS, через sails-generate-auth и JWTs - используя this в качестве справочника - для входа. Я пытаюсь отделить api от приложения Ember настолько, насколько я могу, поэтому я могу использовать тот же API для iOS и т. Д. Так как паспорт использует обратные вызовы для работы с Facebook, как я могу войти в систему через AJAX?Facebook login with passport.js, sails.js API и ember.js
Я смог успешно войти в Facebook с помощью паспортных JS используя AJAX GET для /auth/facebook
как так
var url = config.api + '/auth/facebook'
var controller = this;
Ember.$.get(url, function (data) {
// This is never called because Facebook redirects
localStorage.private_token = data.token;
controller.transitionToRoute('profile', data.user);
});
но потом, когда Facebook перенаправляет, он возвращается к API, а не интерфейс приложения. Но если я настрою бэкэнд для перенаправления к интерфейсу приложения после обратного вызова, у меня есть зависимость от внешнего приложения, которое я хочу избежать. Я никогда раньше не делал Facebook, но я использовал маркеры API какое-то время.
Есть ли способ сделать то, что я пытаюсь сделать? Или мне нужно просто перенаправить на внешнее приложение с passport.callback
?
Update
После немного больше поисков, я наткнулся на этот ответ: passport.js RESTful auth
кажется, что я не могу добиться того, чего я хочу, так как Facebook только обнажает аутентификацию на основе перенаправления, а не асинхр или JSON один. Полезно знать ... отметьте как дубликат, если хотите.
Sabbir, я понимаю, как работает обратный вызов, а также что я могу решить его, установив обратный вызов перенаправления на мое приложение ember. Моя проблема заключается в том, что это требует, чтобы мой API знал о моем интерфейсном приложении, которое я хотел бы избежать, если это возможно. В идеале я хотел бы получить решение, позволяющее мне аутентифицироваться с помощью Facebook без перенаправления, поэтому я могу использовать ответ AJAX. Я не уверен, что это возможно, поскольку я все еще новичок в Facebook. – onetwopunch
Вы можете настроить маршрут, который обрабатывает переадресацию facebook и отправляет ответ json, если вы ищете. В интерфейсе вы всегда можете настроить, что делать с этим ответом. – Sabbir
У меня уже есть маршрут, который выдает JSON, но когда Facebook перенаправляется на этот маршрут, диспетчер должен будет знать о приложении переднего плана для перенаправления или рендеринга. Это то, чего я пытаюсь избежать, если это возможно. – onetwopunch