facebook使用asp.net核心登录

时间:2017-05-05 09:21:06

标签: facebook asp.net-core

我使用这个网站:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins按照如何使用asp.net核心登录facebook的步骤。我做了所有的步骤,但问题是我找不到代码如何调用facebook登录api。所有它都显示了如何设置所有密钥等等...最终图像显示了facebook按钮,但它调用了什么动作他们没有显示..有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

假设您使用的是ASP.NET身份,则无需手动调用Facebook登录API。在FacebookMiddleware方法中添加UseFacebookAuthentication(FacebookOptions option)代码后,Startup.Configure()会为您执行此操作。所以基本上你只需要向中间件提供AppIdAppSecret,它将完成剩下的工作。

如果您查看Views/Account/Login.cshtml,您会看到以下代码为外部提供商生成按钮:

<div class="col-md-4">
    <section>
        <h4>Use another service to log in.</h4>
        <hr />
        @{
            var loginProviders = SignInManager.GetExternalAuthenticationSchemes().ToList();
            if (loginProviders.Count == 0)
            {
                <div>
                    <p>
                        There are no external authentication services configured. See <a href="https://go.microsoft.com/fwlink/?LinkID=532715">this article</a>
                        for details on setting up this ASP.NET application to support logging in via external services.
                    </p>
                </div>
            }
            else
            {
                <form asp-controller="Account" asp-action="ExternalLogin" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
                    <div>
                        <p>
                            @foreach (var provider in loginProviders)
                            {
                                <button type="submit" class="btn btn-default" name="provider" value="@provider.AuthenticationScheme" title="Log in using your @provider.DisplayName account">@provider.AuthenticationScheme</button>
                            }
                        </p>
                    </div>
                </form>
            }
        }
    </section>
</div>

当用户点击某个按钮时,它会调用AccountController.ExternalLogin(string provider, string returnUrl)操作,该操作会重定向到外部提供商页面。