注销后如何获取Facebook访问令牌

时间:2019-07-04 00:40:50

标签: asp.net facebook asp.net-core asp.net-identity logout

我是Identity的新手,我需要在注销时(在Logout.cshtml.cs内部)获取FB访问令牌,但此操作不起作用,我得到了NULL:

public async Task<IActionResult> OnPost(string returnUrl = null) 
{    
   var fbAcessToken = await HttpContext.GetTokenAsync("Facebook", "access_token");
}

注意:当用户单击“注销”时,它首先命中下面的方法,在这里我获得有效的FB访问代码:

public async Task<IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null)
{
   var fbAcessToken = await HttpContext.GetTokenAsync("Facebook", "access_token");
}

作为一种解决方法,我还尝试将其存储为新的ClaimsIdentity并将其添加到当前用户(ClaimsPrincipal),但是当代码到达注销的OnPost方法时,ClaimsPrincipal是不同的,因此它不在预期的位置。

我需要FB访问令牌才能执行FB外部注销,如下所示:

var result = await client.DeleteAsync(new Uri($"https://graph.facebook.com/v3.1/me/permissions?access_token={fbToken}"));

我希望得到您的建议,并弄清楚。

非常感谢您。

0 个答案:

没有答案