在 C# 中使用身份验证令牌获取用户详细信息
Get user details using the authentication token in c#
我正在使用 servicestack,在客户端,我有 facebook 身份验证,它将提供 accesstoken post 登录
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
document.getElementById('status').innerHTML =
'Thanks for logging in, ' + response.name + '!';
});
}
身份验证完成后,将设置一个 cookie 值 fbsr_Appid
,其中将包含身份验证令牌
当用户向 servicestack 发出请求时,我将能够从上下文中的 cookie 值中获取此身份验证令牌。 那么现在,我如何获取使用此令牌的用户的用户 ID/电子邮件 ID?
目前我可以使用以下方法获取访问令牌的到期时间 url
https://graph.facebook.com/oauth/access_token_info?client_id=APPID&access_token=xxxxxxxxx
returns 响应格式如下
{
access_token: "xxxxxxxx",
token_type: "bearer",
expires_in: 5560
}
我终于想出了办法
var details = string.Format("https://graph.facebook.com/me?access_token={0}", token);
这是以下格式的回复
{
id: "344657773358323",
email: "zz@gmail.com",
first_name: "xxxxxx",
gender: "male",
last_name: "xxxxxx",
link: "https://www.facebook.com/app_scoped_user_id/xxxxx/",
locale: "en_US",
name: "xxxx xxxx",
timezone: 5.5,
updated_time: "xx-xx-xx:07:xx+0000",
verified: true
}
我正在使用 servicestack,在客户端,我有 facebook 身份验证,它将提供 accesstoken post 登录
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
document.getElementById('status').innerHTML =
'Thanks for logging in, ' + response.name + '!';
});
}
身份验证完成后,将设置一个 cookie 值 fbsr_Appid
,其中将包含身份验证令牌
当用户向 servicestack 发出请求时,我将能够从上下文中的 cookie 值中获取此身份验证令牌。 那么现在,我如何获取使用此令牌的用户的用户 ID/电子邮件 ID?
目前我可以使用以下方法获取访问令牌的到期时间 url
https://graph.facebook.com/oauth/access_token_info?client_id=APPID&access_token=xxxxxxxxx
returns 响应格式如下
{
access_token: "xxxxxxxx",
token_type: "bearer",
expires_in: 5560
}
我终于想出了办法
var details = string.Format("https://graph.facebook.com/me?access_token={0}", token);
这是以下格式的回复
{
id: "344657773358323",
email: "zz@gmail.com",
first_name: "xxxxxx",
gender: "male",
last_name: "xxxxxx",
link: "https://www.facebook.com/app_scoped_user_id/xxxxx/",
locale: "en_US",
name: "xxxx xxxx",
timezone: 5.5,
updated_time: "xx-xx-xx:07:xx+0000",
verified: true
}