AngularJS - 显示ASP.Net Web API Facebook身份验证的登录对话框

时间:2014-11-28 05:29:21

标签: angularjs facebook facebook-graph-api asp.net-web-api

我一直在使用此tutorial通过Facebook验证我的AngularJS单页应用。

以下是本教程中的 GetExternalLogin 方法。正如预期的那样,当Facebook帐户以前没有身份验证时, ChallengeResult 会返回Facebook登录对话框的HTML(这是我通过邮递员测试时的结果,我甚至没有那么远来自我的AngularJS网站)。

如何在已调用API的AngularJS应用程序中显示Facebook登录对话框HTML GetExternalLogin

    [OverrideAuthentication]
    [HostAuthentication(DefaultAuthenticationTypes.ExternalCookie)]
    [AllowAnonymous]
    public async Task<IHttpActionResult> GetExternalLogin(string provider, string error = null)
    {
        string redirectUri = string.Empty;

        if (error != null)
        {
            return BadRequest(Uri.EscapeDataString(error));
        }

        if (!User.Identity.IsAuthenticated)
        {
            return new ChallengeResult(provider, this); // Returns HTML for Facebook login dialog
        }

        ...
    }

1 个答案:

答案 0 :(得分:0)

您应该从浏览器调用此端点而不是邮递员,以便正确呈现html,并且您将能够在弹出屏幕中输入Facebook凭据,然后您将接受同意屏幕并获取外部访问令牌,并将作为url哈希片段。 希望这能回答您的问题并感谢您关注bitoftech.net :)