I'm tring to implement an JWT for login with Angular 1.5.8 + CodeIgniter 3.1 on localhost, and I have a problem, console throwing token as 'undefined', from the server still {"error":"Wrong mail or password"}, but data is correct with database. Any suggestions, help, anything.
//-------------------User.php----------------------------
public function login()
{
$email = $this->input->post( 'email' );
$password = $this->input->post( 'password' );
$password = crypt( $password , config_item( 'encryption_key' ) );
$login = $this->User_model->login( $email , $password );
if ( !$login )
{
$output['error'] = 'Wrong mail or password';
}
else
{
$token = $this->jwt->encode( array(
'userId' => $login->id,
'name' => $login->name,
'email' => $login->email,
'role' => $login->role
) , config_item( 'encryption_key' ) );
$output['token'] = $token;
}
echo json_encode( $output );
}
//----------------User_model.php-------------------------
public function login( $email , $password )
{
$this->db->where( 'email' , $email );
$q = $this->db->get( 'users' );
$result = $q->row();
if ( empty( $result ) || $password != $result->password )
{
$output = false;
}
else
{
$output = $result;
}
return $output;
}
//----------------controler-user.js-------------------------
myCtrlsUser.controller( 'userLogin' , [ '$scope', '$http', 'store' , function( $scope, $http, store ){
$scope.user = {};
$scope.formLogin = function ( user ) {
$http.post( 'api/site/user/login/' , {
email : user.email,
password : user.password
}).success( function( data ){
$scope.submit = true;
$scope.error = data.error;
if ( !data.error )
{
store.set( 'token' , data.token );
}
console.log( store.get( 'token' ) );
}).error( function(){
console.log( 'Error #020: Problem with log in' );
});
};
}]);