1

Итак, я установки системы аутентификации с использованием Джосера и покоиться социал-AUTH (https://github.com/st4lk/django-rest-social-auth)Как я могу выполнить вход в FaceBook с помощью рамки django rest, не требуя, чтобы клиент использовал всплывающее окно?

, но кажется, что это требует от клиента, чтобы открыть всплывающее окно или модальный Войти с Facebook, что наш интерфейс DEV говорит, что это плохая идея, вместо этого мы должны использовать перенаправления на стороне сервера.

Так что, если это разумно - как мне перейти к настройке сервера, чтобы пропустить модем facebook на стороне клиента? Я рад поменять текущую социальную лицензию на что-то еще, если это упростит ситуацию.

FWIW - мы используем угловые на веб-интерфейсе, но также планируют на других фронтэндах в будущем авторизации на стороне

+1

Существует поток входа на серверной стороне, который работает путем перенаправления пользователя внутри существующей вкладки/окна - https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow - есть ли у django, что уже реализовано, или если вам нужно будет сделать некоторую кодировку самостоятельно, я не знаю. – CBroe

ответ

3

клиент с JavaScript SDK является самым простым, и это совершенно безопасно. Это также самый лучший для пользователя, потому что вам не нужно перенаправлять страницу входа. Не уверен, почему ваш сторонний разработчик говорит, что это плохая идея, на самом деле это лучший и рекомендуемый способ. В этом случае всплывающее окно в порядке, потому что оно инициируется пользователем. Вот пример: http://www.devils-heaven.com/facebook-javascript-sdk-login/

После авторизации вы можете отправить токен доступа на сервер, если он вам нужен. Убедитесь, что вы это прочитали, и используйте appsecret_proof: https://developers.facebook.com/docs/graph-api/securing-requests

Вы можете легко разместить код в услуге «Угловая», например.

+0

Ну, его точные слова были: «мы не можем использовать fb sdk js , потому что модалы могут быть заблокированы» – Chozabu

+1

вот что я подумал - в данном случае это не имеет значения, по крайней мере, если вы сделаете это правильно , Я использую блокировщики объявлений в своих браузерах, и они не блокируют всплывающее окно входа в систему fb, потому что оно инициировано пользователем. просто убедитесь, что вы следуете примеру моего ответа, используйте FB.login непосредственно при взаимодействии с пользователем. – luschn

+1

На самом деле, я использую js sdk с многих лет для этого, и у меня никогда не было проблем с всплывающим окном входа. Кроме того, базовый код не изменился за все эти годы, он в основном такой же, как несколько лет назад, - а php sdk изменил LOT. :) – luschn