我是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}"));
我希望得到您的建议,并弄清楚。
非常感谢您。