2016-10-26 7 views
2

私はAPI RestをAuthに手動で作成しようとしていますが、Auth :: attemptの応答は常にfalseです。Laravel manual auth - never works

ルート

Route::group(["prefix"=>"api"], function(){ 
    Route::post('/login', [ 
     'as' => 'checkLogin', 
     'uses' => '[email protected]' 
    ]); 
}); 

コントローラ

class LoginCtrl extends Controller 
{ 
    public function checkLogin(Request $request){ 
     $input = $request->all(); 
     if(Auth::attempt(['username' => $input['user'], 'password' => $input['password']])){ 
      $data = ["response"=>true,"access_token"=>"test"]; 
     }else{ 
      $data = ["response"=>false,"access_token"=>"none"]; 
     } 
     return response()->json($data); 
    } 
} 

私は、ユーザーの作成時にパスワードを暗号化するためにHash::makeをUSERDています。

私のモデルは次のとおりです。

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    protected $table = "usuarios"; 
    protected $username = 'username'; 

    protected $fillable = [ 
     'name', 'username', 'password' 
    ]; 

    protected $hidden = [ 
     //'password', 'remember_token', 
    ]; 

    public $timestamps = false; 

    public function access_token(){ 
     return $this->hasOne('App\AccessToken'); 
    } 
} 

私が間違って何をしているのですか?私のユーザー作成ザッツ

EDIT

$user = new User(); 
$user->username = "myFreshUsername"; 
$user->password = Hash::make('userPwd'); 
$user->save(); 

。これが助けになったら、私は `php artisan make:auth 'を起動しませんでしたが、この順序は必要かもしれませんか?いつものコースの

+0

'\ config \ auth .php'?あなたは$ request-> input() 'の値を使わずにログインできますか?(つまり、' \ Auth :: try(["username" => "someone"、 "password" => "password"])) ') –

+0

も共有できますあなたのユーザー作成方法、パスワードの暗号化を調べることができます。あなたがやっている暗号化プロセスが間違っているかもしれません。 – Qazi

+0

さて、私はユーザー作成@ Qaziを投稿します。私は '\ config \ auth.php'で新しくlaravel 5.2のインストールを変更しませんでした。 –

答えて

1

それは偽のあなたがlaravel
を使用して、あなたのリクエストでJSONを取得するために正しい方法を使用していなかったので、正しい方法は

$input = $request->json()->all(); 

ない

$input = $request->all(); 

ので、あなたのコントローラが希望ですこのようになります

class LoginCtrl extends Controller 
{ 
    public function checkLogin(Request $request){ 
     $input = $request->json()->all(); 
     if(Auth::attempt(['username' => $input['user'], 'password' => $input['password']])){ 
      $data = ["response"=>true,"access_token"=>"test"]; 
     }else{ 
      $data = ["response"=>false,"access_token"=>"none"]; 
     } 
     return response()->json($data); 
    } 
} 
+0

ありがとう、私はRequestオブジェクトのjson()メソッドを知りませんでした。一方、 'Auth :: attempt'ではまだfalseになります。 –

+0

@ProgramadorAdagal var_dump($ request-> json() - > all())しようとしました。結果を見ますか? – Beginner

+0

'アレイ(2){ [ "ユーザ"] => 列(3) "DEV" [ "パスワード"] => ストリング(11) "XXXXXX" }' –