Создает ли Facebook один и тот же токен доступа «offline_access» для одного и того же пользователя при каждой аутентификации? - PullRequest
0 голосов
/ 30 ноября 2011

Я создаю веб-приложение и использую OAuth для проверки подлинности Facebook. Я успешно сгенерировал access_token, и каждый раз, когда пользователь выходит из системы / обратно, я сопоставляю его access_token, чтобы найти его учетную запись. Это работает очень хорошо.

Кроме того, я создаю сопутствующее приложение для Windows Phone 7. У меня такой же процесс аутентификации с использованием Facebook SDK, но возвращаемый токен доступа отличается. Это означает, что я не могу сопоставить аккаунт.

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

Может кто-нибудь сказать мне, правильное ли поведение я ожидаю? Я просмотрел документацию на Facebook, но не могу найти что-нибудь подходящее. Возможно, OAuth здесь не совсем правильно.

1 Ответ

1 голос
/ 03 октября 2012

Каждый раз, когда я входил в систему, код возвращал другое значение кода доступа.Мне нужно было добавить новое поле с именем «response_type» со значением «code».Затем он перенаправил меня на страницу входа и ответил верным токеном, который я затем обменял на код доступа.

Чтобы сгенерировать URL, это был код:

Facebook.FacebookOAuthClient client = new Facebook.FacebookOAuthClient();
client.AppId = "285539721457932";
client.AppSecret = "65233641cf71e6fa9fef5ecd7d802ebf";
client.RedirectUri = new Uri("http://www.imaybelate.com/Account/FacebookCallback");

url = client.GetLoginUrl(new Dictionary<string, object>()
{
    { "display", "wap" },
    { "response_type", "code" },
    { "permissions","offline_access"}
}).ToString();
...