2016-09-16 4 views
0

Ich versuche, Authentifizierung mit LoopbackJS als Back-End-Provider durchzuführen. Nachdem ich die Dokumentation auf der Loopback-Doc-Site befolgt habe, erhalte ich immer noch den Fehler "Unbekannter Provider".Authentifizierung mit Loopback und Winkel

Hier ist der folgende Code, den ich bisher geschrieben habe.

Home Ansicht

<form class="centered" ng-controller="UserController as user"> 
<div class ="form-group"> 
    <label for="exampleEmail">Email</label> 
    <input class="form-control" type="text" name="email" placeholder="{{user.usernames.email}}"> 
    <label for="examplePassword">Password</label> 
    <input class="form-control" type="password" name="password" placeholder="{{user.usernames.password}}"> 
    <p>{{user.description}}</p> 
    <button class="button" ng-show="user.usernames.signin" ng-submit="login()">login</a> </button> 
</div> 
</form> 

Auth-Controller

var app = angular.module('app') 
app.controller('UserController', ['$scope','AuthService', '$state', function($scope, AuthService, $state){ 
    $scope.user = { 
     email: '[email protected]', 
     password: 'foobar' 
    }; 

     $scope.login = function() { 
     AuthService.login($scope.user.email, $scope.user.password) 
     .then(function() { 
      $state.go('success'); 
     }); 
    }; 


}]); 

Index.HTML

<!DOCTYPE html> 
<html ng-app="app"> 
<head> 
    <title>Todo Application</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
    <link href="css/style.css" rel="stylesheet"> 
</head> 
<header ng-include="'views/header.html'"></header> 
<body> 


<ui-view></ui-view> 

    <script src="vendor/angular.js"></script> 
    <script src="vendor/angular-resource.js"></script> 
    <script src="vendor/angular-ui-router.js"></script> 
    <script src="js/app.js"></script> 
    <script type="text/javascript" src="js/services/auth.js"></script> 
    <script type="text/javascript" src="js/controllers/auth.js"></script> 
    <script src="js/services/lb-services.js"></script> 
</body> 
</html> 

Auch Um das Problem so detailliert wie möglich darzustellen, sehen Sie sich die Fehler an, die sich in meiner Konsole befinden.

enter image description here

Vielen Dank im Voraus für die Hilfe, es ist sehr zu schätzen.

+0

Könnten Sie einen Link auf die Dokumentation zur Verfügung stellen haben Sie verfolgt? Von dem, was ich denke, geben sie Ihnen entweder den Code für AuthService-Anbieter, welche Abhängigkeit Sie in Ihren Controller injizieren, oder sie erwarten, dass Sie einen eigenen Code schreiben. Wenn sie es geben, haben Sie sein Skript in Ihren HTML-Code eingefügt? Und hast du die entsprechende Abhängigkeit zum Modul deiner App hinzugefügt? –

+0

Hey Danke für den Kommentar. Ich habe gerade die Antwort (über Versuch und Irrtum) auf die eckigen Dokumente gefunden. Ich glaube, ich habe vergessen, eine Service-Funktion in meiner auth.js-Datei zur Verfügung zu stellen. –

Antwort

0

Ich glaube, dass AuthService ist ein Service, den Sie selbst geschrieben haben. Sie sollten stattdessen das von strongloop bereitgestellte Dienstprogramm verwenden, um den Dienst von den Modellen Ihres Servers zu generieren.

Authentifizierung mit Loopback + eckig ist ziemlich einfach so.

  1. Generieren Sie eckige Dienste vom Loopback-Server, indem Sie lb-ng . ./client/js/lb-services.js im Stammordner Ihres Servers ausführen.
  2. Dann in Winkel, Anruf MyUser.login({email: '[email protected]', password: 'foobar'})
  3. Fertig. Wenn die Berechtigungsnachweise korrekt sind, wird der Benutzer für jede weitere Anfrage authentifiziert (im Prinzip merkt sich der Dienst das Verbindungstoken und setzt ihn jedesmal, wenn eine neue Anfrage an Ihre REST-API gestellt wird, in der Kopfzeile Authorization).
  4. Eventuell möchten Sie möglicherweise MyUser.isAuthenticated() aufrufen, damit sich Ihre Seite anders verhält, wenn der Benutzer authentifiziert wurde.

Das ist alles here dokumentiert

0

Sie verwenden AuthService, die Service-Benutzer erstellt ist. Es ist Abstraktion über lb-services.js von Loopback. Sie müssen lb-services.js mit der Befehlszeile lb erzeugen.

Loopback AngularJS Authentication: Anmeldung und Registrierung Schritte:

  1. Erstellen Sie neue Loopback-Projekt.
  2. Generieren Sie lb-services.js und verwenden Sie es im angularjs-Projekt.
  3. Verwenden Sie User.login() für die Anmeldung, User.create() für die Registrierung und User.isAuthenticated(), um zu überprüfen, ob sich der Benutzer anmeldet oder nicht.

beste Tutorial für loopback angularjs authentication