我使用这个网站:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins按照如何使用asp.net核心登录facebook的步骤。我做了所有的步骤,但问题是我找不到代码如何调用facebook登录api。所有它都显示了如何设置所有密钥等等...最终图像显示了facebook按钮,但它调用了什么动作他们没有显示..有人可以解释一下吗?
答案 0 :(得分:1)
假设您使用的是ASP.NET身份,则无需手动调用Facebook登录API。在FacebookMiddleware
方法中添加UseFacebookAuthentication(FacebookOptions option)
代码后,Startup.Configure()
会为您执行此操作。所以基本上你只需要向中间件提供AppId
和AppSecret
,它将完成剩下的工作。
如果您查看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)
操作,该操作会重定向到外部提供商页面。