du0923 2016-07-09 04:20
浏览 29
已采纳

如何创建多个登录?

I am using laravel 5.2.39.after successful login,web page is not redirecting to member/add-ticket.Can any one tell where am doing wrong ?

Following is my code

Kernel.php

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],

        'api' => [
            'throttle:60,1',
        ],

    ];


    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
        'member' => \App\Http\Middleware\RedirectIfNotMember::class,
    ];

In Middleware

RedirectIfNotMember.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfNotMember
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
 public function handle($request, Closure $next, $guard = 'member')
    {
        if (!Auth::guard($guard)->check()) {
            return redirect('member-login');
        }

        return $next($request);
    }
}

In AuthController.php

<?php

namespace App\Http\Controllers\MemberAuth;

use App\Member;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Auth;
use Illuminate\Http\Request;
use Redirect;

class AuthController extends Controller
{


    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    protected $redirectTo = '/member/add-ticket';

    protected $guard = 'member';


    public function __construct()
    {
       $this->middleware('guest', ['except' => 'logout']);
    }




   public function memberLogin()
    {
        if (Auth::guard('member')->check())
        {
            return redirect('member/add-ticket');
        }

        return view('login.member_login');
    }
     public function memberPostLogin(Request $request)
    {

        $email=$request->emailid;
        $password=$request->password;
       if(Auth::attempt(['emailid'=>$email,'password'=>$password]))
       {
            return redirect()->intended('member/add-ticket');
       }

      return Redirect::to('member-login');
      //return abort(403);
    }



    public function memberRegister()
    {
        return view('login.member_register');
    }

    public function memberPostRegister(Request $request)
    {
        //$this->print_me($request->all());
        $data=$request->all();
       // $this->print_me($data);
        $data['password']=bcrypt($request->password);

      //  $this->print_me($data);
        $data=Member::create($data);

       if($data)
            return Redirect::to('member-login');
        else
            return Redirect::to('member-register');
    }
    public function resetPassword()
    {
        //return view('member.auth.passwords.email');
    }

    public function logout(){
        Auth::guard('member')->logout();
        return redirect('member-login');
    }

    public function print_me($data){
        echo "<pre>";
        echo print_r($data);
        echo "</pre>";
    }
}

route.php

 Route::group(['middleware' => ['member'],'prefix' => 'member'], function () {
        Route::get('add-ticket','TestController@addTicket');
        //Login Routes...
        Route::get('logout','MemberAuth\AuthController@logout');

    });   

Route::group(['middleware' => ['web']], function () {
   //Member login routes
    Route::get('member-login','MemberAuth\AuthController@memberLogin');
    Route::post('member-login','MemberAuth\AuthController@memberPostLogin');

    Route::get('member-register','MemberAuth\AuthController@memberRegister');
    Route::post('member-register','MemberAuth\AuthController@memberPostRegister');

    Route::get('member-password-reset','MemberAuth\PasswordController@resetPassword');

     //Admin login routes
    Route::get('admin-login','AdminAuth\AuthController@adminLogin');
    Route::post('admin-login','AdminAuth\AuthController@adminPostLogin');
    Route::get('admin-password-reset','AdminAuth\PasswordController@resetPassword');

});

Route::group(['middleware' => 'web'], function () {
  Route::auth();

   // Route::get('/home', 'HomeController@index');
});
  • 写回答

1条回答 默认 最新

  • dongxiang3205 2016-07-09 05:47
    关注

    instead writing your own function you should use laravel default function for authentication define in Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers Trait

    So just update your route.php for this

       //Member login routes
        Route::get('member-login','MemberAuth\AuthController@getLogin');
        Route::post('member-login','MemberAuth\AuthController@PostLogin');
    
        //Admin login routes
        Route::get('admin-login','AdminAuth\AuthController@getLogin');
        Route::post('admin-login','AdminAuth\AuthController@PostLogin');
    

    don't fogert to include Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers in your both controller AdminAuth\Authcontroller and MemberAuth\AuthController

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘