Даунсайд всегда использует auth_type = "rerequest" в кнопке входа в Facebook (для получения необходимых разрешений)?

У меня есть реализация входа в Facebook (для веб-сайта, использующего javascript API), для которого я хочу получить разрешение "электронной почты". Когда пользователь впервые войдет в систему, они могут отказать в этом разрешении, что достаточно легко обнаружить путем последующего просмотра конечной точки /me/permissions. Если я нахожу, что они отрицают это, я не буду продолжать логин. Все идет нормально.

Затем во время последующих логинов, чтобы убедиться, что они получили приглашение для этого разрешения, я включаю auth_type = "rerequest" в мои логин-кнопки (которые могут отображаться через xfbml или ссылку с помощью onclick = FB.login(...)).

Хотя это, кажется, работает, мой вопрос: если я всегда хочу, чтобы разрешение было необходимо, есть ли какой-либо недостаток для ВСЕГДА, включая auth_type = "rerequest" в моих login-кнопках? Я не вижу ничего противного в документации, и это, похоже, не имеет какого - либо неблагоприятного влияния на новых пользователей или пользователей, которые уже не отрицавших разрешение (т.е. только изменяет поток входа в систему - путем повторного наведения, если пользователь уже что-то отклонил. Какое поведение я хочу).

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

Ответ 1

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

Ответ 2

Вы используете кнопку входа в систему Facebook? Это работает для меня, чтобы повторно запросить отклоненное разрешение.

Просто добавьте auth_type = "rerequest" в кнопку.

<fb:login-button scope="email,user_birthday,public_profile" auth_type="rerequest" onlogin="checkLoginState();"></fb:login-button>

Надеюсь, что это может вам помочь.