2012-03-10 5 views
3

Я пытаюсь осуществить подключение Facebook к моему сайту, и у меня есть пара вопросов.facebook register/login

1: Возможно ли зарегистрировать пользователя на моем веб-сайте, используя его текущую электронную почту/пароль на facebook.

Предположим, пользователь нажимает на ссылку Register via facebook, а затем он должен дать мне разрешение на доступ к его паролю, электронной почте и т. Д. ... и после этого я поместил эту информацию в свою собственную базу данных, и он сможет войти в систему с этой учетной записью в любое время, когда он захочет, без необходимости давать мне разрешения в любое время в будущем.

2: Если такая регистрация невозможна, то какое другое решение было бы для меня лучше? Потому что мне нужно как-то отслеживать того пользователя, который вошел в систему с помощью facebook, потому что он может загружать фотографии, отправлять сообщения и т. Д.

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

EDIT Спасибо всем за прекрасные ответы, которые оно помогло мне много, теперь все, что осталось читать документацию :)

ответ

6

Да, это, можно получить информацию пользователя. Но это довольно сложно, когда вы никогда не занимались этим.

Прежде всего, необходимо отправить пользователю по следующей ссылке:

https://m.facebook.com/dialog/oauth?client_id=your-client-id&redirect_uri=xxx&scope=listof-information-you-want 

Facebook будет вернуть клиенту Ури указанным, если пользователь отклонил это даст повод. Если это не так, вы получите код в urlencoded формате.

Этот код необходим для следующего шага, запроса маркеров доступа:

https://graph.facebook.com/oauth/access_token?redirect_uri=xxx&client_id=xxx&client_secret=xxx&code=xxxx 

Это вернет маркер доступа, если авторизация не удастся.

После этого вы можете запросить информацию, которую вы хотите:

https://graph.facebook.com/me?method=GET&metadata=true&format=json&access_token=access_token 

Это будет включать в facebook идентификатор пользователя, который является уникальным для всех пользователей. Сохраните его, и вы можете различать регистр и логин.

Это примерно процесс для любого приложения oauth2.

Facebook не будет повторно запрашивать разрешения после того, как пользователь предоставит их вам. Таким образом, вы можете хранить токен доступа и повторно использовать его для бэкэнда, а также использовать ту же процедуру, которую вы используете для регистрации для входа.

1
  1. У вас нет доступа к паролю пользователей - только по электронной почте, если вы попросите его.

  2. Лучшим способом было бы иметь таблицу пользователей и их идентификаторы учетной записи Facebook.

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

3
  • Вы не можете получить доступ к паролю пользователя из Facebook даже с его/ее разрешения, так что пользователь всегда будет иметь к авторизации через Facebook и Facebook передать вам идентификатор пользователя, вошедшего в систему пользователя один раз аутентификации преуспевает. Вы можете хранить все виды других данных локально, но недостаточно для аутентификации пользователя самостоятельно.

  • После аутентификации пользователя у вас будет доступ к идентификатору пользователя пользователя Facebook через API, которого должно быть достаточно для подключения всех видов информации к этому конкретному пользователю.

2

Facebook не предоставляет доступа к учетным записям, когда пароли берутся из ваших элементов управления. Он предоставляет ему собственный холст для информации для входа. Поэтому вы не можете использовать свой первый подход для хранения паролей в своих базах данных. Check this out.

Однако вы можете хранить адреса электронной почты после входа пользователя в свою учетную запись с помощью фейсбуков sdks. Проверьте этот код link на примере примера кода C# SDK. Вы можете использовать API-интерфейсы Facebook, чтобы получать идентификатор электронной почты пользователя, фотографии, список друзей и другую информацию, а затем играть соответственно.

Смежные вопросы