вопрос о потоке аутентификации приложения facebook iframe

#php #facebook #sdk

#php #Facebook #sdk

Вопрос:

Я не совсем уверен, правильно ли я выполняю аутентификацию, поэтому я прошу здесь подтвердить мой процесс.

Проверьте, аутентифицирован ли пользователь, если нет, переходите к следующему шагу.

  1. Перенаправить пользователя на:https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_IDamp;redirect_uri=YOUR_URL

  2. При перенаправлении я беру $ _REQUEST[‘code’] и повторно выдаю егоhttps://graph.facebook.com/oauth/access_token ?client_id=YOUR_APP_ID amp;redirect_uri =YOUR_URLamp;client_secret=YOUR_APP_SECRET amp;code =THE_CODE_FROM_ABOVE для получения токена доступа.

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

Все работает нормально, но, похоже, просто в моем приложении происходит слишком много перенаправлений. Другие приложения, похоже, просто перенаправляют вас прямо в свое приложение, не проходя шаг 1 (те, которые уже добавили приложение).

Мне интересно, используют ли другие разрешение «offline_access» и используют ли это как способ обойти получение «кода» для получения процедуры «access_token».

Ответ №1:

Правильно. С помощью offline_access вы можете сохранять access_token на неопределенный срок и избежать необходимости проходить через этот поток снова. Если вы попытаетесь использовать его и получите исключение OAuthException, вам следует отказаться от сохраненного токена доступа. Вот сколько приложений пропускают эти шаги аутентификации для проверки учетной записи. Одним из основных недостатков запроса offline_access является то, что он может выглядеть плохо для пользователя.

Комментарии:

1. есть ли какой-либо способ получить $ _REQUEST[‘code’] через graph api? я хочу сделать все это вручную, не перенаправляя пользователей на: facebook.com/dialog /…