2016-10-26 2 views
2

API 휴식을 위해 Auth를 수동으로 만들려고 시도하지만 Auth :: 시도에 대한 응답은 항상 false입니다.Laravel manual auth - 작동하지 않음

경로 나 사용자 작성시 암호를 암호화하는 Hash::make을 userd에 한

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); 
    } 
} 

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

컨트롤러.

내 모델입니다 : 내가 잘못 뭐하는 거지

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'); 
    } 
} 

? 내 사용자 생성 그게

편집

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

. 이것이 도움이된다면`php artisan make : auth '를 시작하지 않았습니까? 물론

+0

'\ config \ auth .php'? '$ request-> input()'값을 사용하지 않고 로그인 할 수 있습니까 (예 : \ Auth :: 시도 ([ "사용자 이름"=> "누군가", "비밀번호"=> "비밀번호"])))') –

+0

도 공유 할 수 있습니까? 귀하의 사용자 생성 방법, 그래서 우리는 암호를 암호화로 볼 수 있습니다. 당신이하고있는 암호화 과정이 잘못되었을 수 있습니다. – Qazi

+0

좋아, 나는 사용자 생성 @ Qazi를 게시 할 것이다. Tim 나는'\ config \ auth.php'에서 새로운 laravel 5.2 설치를 변경하지 않았습니다. –

답변

1

는 항상 당신이 laravel
에게 올바른 방법을 사용하여 요청에서 JSON을 얻기 위해 올바른 방법을 사용하지 않았기 때문에 거짓이없는

$input = $request->all(); 

그래서 컨트롤러는 것

$input = $request->json()->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) "디바이스" [ "비밀번호"] => 문자열 (11) "XXXXXX」 }는' –