Bonjour à tous !

J'essaie de créer une petite api en Laravel avec une petite webapp en angularjs.
Néanmoins, j'ai un petit problème, lorsque j'envoies mes données utilisateurs (lors du login) vers mon API pour checker les identifiants avec ceux de ma base de donnée, je me retrouve avec un POST 500 Error.

JE vous présente ici mes différents codes :

loginController :

'use strict';
intra.controller('loginController', '$scope', '$location', 'authentificationService',
    function($scope, $location, authentificationService) {
        $scope.user = { mail: '', pass: ''};
        $scope.login = function() {
            authentificationService.login($scope.user);
        };
    }
]);

authentificationService:

'use strict';
intra.factory('authentificationService', '$location', '$http',
    function ($location, $http) {
        return {
            login: function(data) {
                return $http.post('/auth/login', data).success(function(response){
                    console.log(response);
                }).error(function(response){
                    console.log(response);
                });
            },
            logout: function() {
                return $http.get('/auth/logout');
            }
        }
    }
]);

Mes routes Laravel :

Route::get('/', function (){
    return View::make('singlepage');
});
Route::post('/auth/login', 'AuthController@login');
//Route::get('/auth/logout', 'AuthController@logout');

Mon AuthController:

<?php

Class AuthController extends BaseController {
    public function login (){

        if(Auth::attempt(array('email' => Input::json('mail'), 'password' => Input::json('pass')))){
            return Response::json(Auth::user());
        } else {
            return Response::json(array('flash' => 'Invalid Username or Password'));
        }

        //return array('email' => Input::json('mail'), 'password' => Input::json('pass'));
    }

    public function logout (){
        Auth::logout();
        return Response::json(array('message' => 'Logged out!'));
    }

}

Chose interessante, lorsque j'utilise juste mon return (commenté dans l'exemple) dans mon AuthCOntroller, c'est-a-dire, lorsque je lui demande simplement de me renvoyer la requête JSON, tout marche bien. Dans mon service, je récupère bien les informations, mais dès que je demande le check de la requête par rapport à la BDD, j'ai ce message

Et voici la réponse que j'obtiens dans Postman :

Pensant que c'était un problème d'AllowMethods, je suis aller téléchargé le module https://github.com/barryvdh/laravel-cors, pour pouvoir autoriser les méthodes POST, mais même après cela, ça ne marche pas ....

J'avoue que là je suis à court d'idées, je viens donc vous demander votre aide !

Merci beaucoup !

PS: je fais mon API en php, car c'est ce que je connais le mieux même si je ne suis pas un tiptopkillerkikoololkevin du PHP, Est ce que c'est plus pertinent de faire une API en NodeJS ou RubyOnRails ? Si oui, je réaliserais ce dont j'ai besoin rapidement avec laravel et me déporterais pour refaire l'API en nodeou ruby plus tard . Un petit conseil / avis sur le sujet est aussi bienvenue ! :)

3 réponses


C'est un problème SQL, tu es en local ? vérifie ton config/database.php ou config/local/database.php

WoodLeg
Auteur

Salut Govan06 !!

Finalement je me suis penché sur une API en NodeJS ;)
Mais merci beaucoup pour ta réponse !

Bonne semaine à toi !
Cordialement et musicalement,
WoodLeg

Il me semble, qu'une requête d'obtention d'informations s'utilise via un GET et non un POST.

http://www.restapitutorial.com/lessons/httpmethods.html