Facebook每次进行身份验证时是否为同一用户生成相同的“offline_access”访问令牌?

时间:2011-11-30 13:44:39

标签: facebook-graph-api facebook-c#-sdk

我正在构建一个Web应用程序,我正在使用OAuth来提供Facebook身份验证。我已经成功生成了access_token,每次用户退出/退回时,我都会匹配他们的access_token来查找他们的帐户。这非常有效。

此外,我正在构建一个Windows Phone 7配套应用程序。我使用Facebook SDK获得了相同的身份验证过程,但返回的access_token是不同的。这意味着我无法匹配该帐户。

由于注销/登录我的Web应用程序似乎反复生成相同的access_token,我很困惑为什么移动应用程序会生成不同的访问令牌。

有人能告诉我,我期待的行为是否正确?我已经浏览了Facebook文档,但找不到任何相关内容。也许OAuth在这里做的不正确。

1 个答案:

答案 0 :(得分:1)

每次登录时,代码都会返回不同的access_code值。我需要添加一个名为“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();