2017-04-23 2 views
4

설명서를 훑어 본 결과,이 작업을 수행하는 데 몇 시간을 보냈습니다. 이것이 실제로 마지막 수단입니다. 그래도 작동하지 않는다면 Laracast에 가입해야 할 수도 있습니다. 나는이 가이드를 따르고 있으며 그것은 나를 위해 일하는 것 같지 않습니다. https://laravel.com/docs/5.4/session데이터베이스에서 Laravel 5.4 세션을 만드는 방법

나는 누군가가 나를 도울 수 있고 내가 잘못하고있는 것을 말해 줄 수 있기를 바라고있다. API 요청을 할 때 성공 응답을 받고 데이터베이스에서 사용자를 반환하지만 세션 테이블에 세션을 만들지 않습니다. 또한 laravel.log에서 오류가 발생하지 않습니다.

아무 문제없이 사용자를 만들 수 있습니다. 사용자를 검색 할 때 해시 된 비밀번호와 일치시킬 수 있습니다.

api.php

Route::middleware('auth:api')->get('/user', function (Request $request) { 
    return $request->user(); 
}); 

Route::post('/users', '[email protected]'); 

UserApiController.php

public function login() 
{ 
    $input = Request::all(); 
    $user = new User(); 
    $response = ['success' => false]; 
    if (!$user->validate($input)) 
    { 
     return response()->json($response, 412); 
    } 
    $user = User::where('Email', $input['Email'])->where('Password', User::makePassword($input['Password']))->first(); 

    Log::info($user); //returns the user object successfully 

    if (!isset($user)) 
    { 
     return response()->json($response, 401); 
    } 
    session('user', $input]); //<--this is not working 
    $response['success'] = true; 
    return response()->json($response, 200); 
} 

답변

3

당신은 당신이 정말로 무엇을 달성하고자 쓴 경우 잘 모르겠어요,하지만 내가 생각 - 당신은 api를 사용하는 미들웨어 그룹과 세션을 사용하고자합니다.

\Illuminate\Session\Middleware\StartSession::class, 

그래서 당신은 api 그룹이 미들웨어를 추가하거나 당신이 정말로 API를 일반적으로 무 상태이기 때문에 무엇을 달성하고자하는 재고 할 수 있습니다 : 당신이 app/Http/Kernel.php 보면하지만 당신은 세션 만 web 미들웨어 그룹에서 기본적으로 사용되는 볼 그래서 각 요청에서 어느 사용자가 요청을하는지 알 수있을 때마다 인증 데이터 (이 경우 기본값은 api_token)를 전송하므로 일반적으로 세션을 사용하지 않습니다.

+0

감사합니다! 새롭게 다시 설치하고 사교계를 설정하는 일을 끝내었고 이번에는 인증을위한 기본 설정을 사용했습니다. –