2017-05-05 2 views
1

Ich habe diese Website verwendet: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins Schritte zu folgen, wie Facebook Login mit asp.net Kern machen. Ich habe alle Schritte gemacht, aber das Problem ist, dass ich den Code nicht finden kann, wie man facebook Login API nennt. Alles zeigt, wie man alle geheimen Schlüssel einrichten kann und so weiter ... Endgültige Bilder zeigen die Facebook-Taste, aber welche Aktion sie anruft zeigen sie nicht .. könnte mir jemand erklären?Facebook Login mit asp.net Kern

Antwort

1

Angenommen, Sie verwenden ASP.NET Identity, müssen Sie die Facebook-Anmelde-API nicht manuell aufrufen. FacebookMiddleware macht es für Sie, nachdem Sie UseFacebookAuthentication(FacebookOptions option) Code in der Startup.Configure() Methode hinzufügen. Also im Grunde müssen Sie nur AppId und AppSecret der Middleware zur Verfügung stellen und es wird den Rest erledigen.

Wenn Sie einen Blick in Views/Account/Login.cshtml nehmen Sie den folgenden Code sehen, welche Tasten für externe Anbieter erzeugt:

<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> 

Wenn der Benutzer auf eine Schaltfläche klickt, wird es AccountController.ExternalLogin(string provider, string returnUrl) Aktion aufrufen, die eine Umleitung auf den externen Anbieter macht Seite.

+0

Also wie sollte Facebook Button Code aussehen in der Hinsicht, dass es fb Middleware und jetzt jede andere Aktion aufrufen würde? –

+0

Weitere Details zu meiner Antwort hinzugefügt. –

+0

Das ist seltsam ... Nach der Durchführung aller Schritte von der Website, meine App nicht Schaltfläche in Sicht generiert, hat nicht generiert ExternalLogin Aktion –