duanmanmian7589 2016-01-12 16:59
浏览 39
已采纳

不要在laravel 5.2中进行身份验证

Don't working authentication. I create authentication manually.
My AdminController:

class AdminController extends Controller
{

    public function signin() {
        return view('admin.signin');
    }

    public function index(Request $request) {

        dd(Auth::check());
        if (Auth::check())
            return view('admin.index.index', ['login' => Auth::user()->name]);
        else
            return redirect()->action('AdminController@signin');
    }

    public function login() {
        $data = Input::all();

        if (Auth::attempt(['name' => $data['login'], 'password' => $data['password']])) {
            return redirect()->intended('/admin');
        } else {
            return redirect()->intended('/admin/signin');
        }
    }

    public function logout() {
        if (Auth::logout() ) {
            return Redirect::to('/admin');
        }
    }
}  

My routes.php file:

  //GET
  Route::get('/', 'IndexController@index');
  Route::get('/admin/signin', 'AdminController@signin');
  Route::get('/admin', 'AdminController@index');
  Route::get('/admin/logout', 'AdminController@logout');

  //POST
  Route::post('/admin/auth', 'AdminController@login');   

dd(Auth::check()); returned false

What I doing wrong?

  • 写回答

1条回答 默认 最新

  • duanmanpi9358 2016-01-12 18:53
    关注

    In Laravel 5.2 you need to define routes using web middleware to make sessions work, so your routes.php file should look like this:

    Route::group(['middleware' => ['web']], function () {
      //GET
      Route::get('/', 'IndexController@index');
      Route::get('/admin/signin', 'AdminController@signin');
      Route::get('/admin', 'AdminController@index');
      Route::get('/admin/logout', 'AdminController@logout');
    
      //POST
      Route::post('/admin/auth', 'AdminController@login');
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?