2017-01-04 4 views
4

Я столкнулся с проблемой в моем Laravel 5.3 пользовательский auth хочу использовать мои собственные функции или страницы, когда я проверяю Auth::check(), он возвращает false. Вот контроллер Пользователь:Как сделать пользовательское auth в laravel 5.3

namespace App\Http\Controllers; 
      use App\User; 
      use Illuminate\Support\Facades\Session; 
      use validatior; 
      use Auth; 
      use Illuminate\Http\Request; 
     class UserController extends Controller 
     { 
    public function postSignUp(Request $request) 
     { 
      $validation = \Validator::make($request->all(), [ 
       'email' => 'email|required|unique:users', 
       'password' => 'required|min:4' 
      ]); 
      if ($validation->fails()) { 
       return redirect()->back()->withErrors($validation->errors()); 
      } else { 
       $user = new User(); 
       $user->email = $request->get("email"); 
       $user->password = bcrypt($request->get['password']); 
       $user->save(); 
      } 
      return redirect('signupPage'); 
     } 
public function postSignIn(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required', 
      'password' => 'required', 

     ]); 
     if (Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) { 
      return redirect('users/profile'); 
     } 
     dd(Auth::check()); 
     exit; 

    } 
    } 

После входа в Я хочу, чтобы перенаправить на страницу профиля, но мое состояние не работает. Мои маршруты:

Route::group(['prefix' => 'users'], function(){ 
     Route::group(['middleware' => 'guest'], function(){ 
      Route::get('/signupPage','[email protected]'); 
      Route::post('/register',array ('as'=>'signup', 'uses' =>'[email protected]',)); 
      Route::get('signInPage', array('as' => 'signInPage', 'uses' => '[email protected]')); 
      Route::post('/postLogin', array('as' => 'postLogin', 'uses' => '[email protected]')); 
     }); 

     Route::group(['middleware' => 'auth'], function(){ 
      Route::get('/profile', array('as' => 'profile', 'uses' => '[email protected]')); 
      Route::get('/logout', array('as'=>'logout', 'uses'=> '[email protected]')); 

     }); 

    }); 

Прошу вас, руководствоваться.

ответ

1

Вот некоторые модификации кода

 
    public function postSignUp(Request $request) 
    { 
     $email = $request->input('email'); 
     $pass = $request->input('password'); 
     $validation = \Validator::make($request->all(), [ 
      'email' => 'email|required|unique:users', 
      'password' => 'required|min:4' 
     ]); 
     if ($validation->fails()) { 
      return redirect()->back()->withErrors($validation->errors()); 
     } else { 
      $pas = bcrypt($pass); 
      $user = new User(); 
      $user->email = $email; 
      $user->password = $pas; 
      $user->save(); 
     } 

     return redirect('users/signInPage'); 
    } 

ли использовать Bcrypt при регистрации вашего пользователя эта функция по умолчанию используется AuthAttempt функции

 
public function postSignIn(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required', 
      'password' => 'required', 

     ]); 
     $email= $request->input['email']; 
     $password= $request->input['password']; 
     if (Auth::attempt(['email'=>$email,'password'=>$password'])) 
     { 
      return redirect('users/profile'); 
     } 

     return redirect('users/signInPage')->withErrors(['failure' => 'The credentials you entered did not match our records. Try again!',]); 
    } 

наконец, это даст вам слишком много перенаправляет ошибку при использовании стандартных посредников, поскольку ваша логика теперь отличается от стандартной по умолчанию, поэтому вам нужно написать свое собственное промежуточное программное обеспечение, для этого выполните эту команду php artisan make:middleware CutomAuth это создаст свой собственный промежуточное программное обеспечение в настоящее время писать код в нем по вашей логике, и после регистрации в app/Http/Kernel.php а \ п 'customauth' => \Illuminate\Auth\Middleware\CutomAuth::class, вы хорошо идти

Смежные вопросы