Метод Illuminate \ Http \ RedirectResponse :: getData не существует. после страницы входа - PullRequest
0 голосов
/ 31 августа 2018

У меня проблема с авторизацией при входе. Я уже использовал аутентификацию Laravel ранее (используя make:auth), а затем я решил изменить свою собственную аутентификацию, и я получил это сообщение об ошибке:

enter image description here

Это моя конфигурация маршрута:

Route::get('/home', 'HomeController@index')->name('home');
Route::post('login', 'authController@logIn');
Route::get('logout', 'authController@weblogOut');

Route::get('login', 'authController@showLogInPage');
Route::post('check_login', 'authController@checkLoginForWeb');
Route::get('web_logout', 'authController@webLogOut');

Вот моя форма входа:

<form method="POST" action="{{ url('check_login') }}" aria-label="{{ __('Login') }}">
    @csrf
    <div class="form-group has-feedback">
      <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}"
             name="email" placeholder="Email" value="{{ old('email') }}" required autofocus>
      <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
    </div>
    <div class="form-group has-feedback">
      <input id="password" type="password"
             class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password"
             placeholder="Password" required>
      <span class="glyphicon glyphicon-lock form-control-feedback"></span>
    </div>
    <div class="row">
      <div class="col-xs-8">
        <div class="checkbox icheck">
          <label class="form-check-label" for="remember">
            <input type="checkbox"> Remember Me
          </label>
        </div>
      </div>
      <!-- /.col -->
      <div class="col-xs-4">
        <button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
      </div>
      <!-- /.col -->
    </div>
  </form>

А вот функция logIn и checkLoginForWeb:

    public function logIn(Request $request) {
    try {
      $validation = Validator::make($request->All(), [
        'email'    => 'required|email',
        'password' => 'required|max:50'
      ]);
      if ($validation->fails()) {
        $error = $validation->getMessageBag()->getMessages();
        return Response::json(['Error' => $error], 400);
      }
      $email    = $request->all()['email'];
      $password = $request->all()['password'];

      $user = User::where('email', $email)->firstOrFail();
      if (Hash::check($password, $user->password)) {
        session()->flush();
        session()->push('user', $user);
        return redirect('home');
        //return Response::json(["Success" => "Log In Successful"], 200);
      }
      throw new Exception();

    } catch (Exception $exception) {
      return Response::json(["Error" => "Login Failed"], 400);
    }
  }

Если я не включил необходимую функцию, сообщите мне об этом в разделе комментариев.

1 Ответ

0 голосов
/ 31 августа 2018

Это работает для меня:

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use App\User;
class UserController extends Controller {
    /**
     * Send back all users as JSON
     *
     * @return Response
     */
    public function index() {
        return response()->json(User::get(), 200);
    }
    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */
    public function store() {
        User::create(array(
            'user_id' => Input::get('user_id'),
            'post_id' => Input::get('post_id'),
            'text' => Input::get('text')
        ));
        return response()->json(array('success' => true), 200);
    }
    /**
     * Return the specified resource using JSON
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id) {
        return response()->json(User::find($id));
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id) {
        Comment::destroy($id);
        return response()->json(array('success' => true), 200);
    }
}

просто используйте return response()->json(array('success' => 'Log In Successful'), 200);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...