Lanka Developers Community

    Lanka Developers

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Shop

    Laravel Multiple Authentication using guards, not working!

    Back-End Development
    laravel php backend
    5
    9
    1147
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • hashan
      hashan Web Development last edited by

      laravel framework එක හොඳට දන්න කෙනෙක් උදව් කරන්න. customers ලටයි Admin users ලටයි වෙන වෙනම guards දෙකක් හඳල තියෙන්නෙ. ඒත් attempt method එකෙන් හරියට login එක වෙලා redirect වෙන්නෙ නැ.

      මේ Logincontroller එක
      dd($status) එකෙනුත් false රිටන් වෙන්නෙ.

      <?php
      
      namespace App\Http\Controllers\Auth;
      
      use App\Http\Controllers\Controller;
      use Illuminate\Foundation\Auth\AuthenticatesUsers;
      use Illuminate\Http\Request;
      use Auth;
      
      class LoginController extends Controller
      {
          /*
          |--------------------------------------------------------------------------
          | Login Controller
          |--------------------------------------------------------------------------
          |
          | This controller handles authenticating users for the application and
          | redirecting them to your home screen. The controller uses a trait
          | to conveniently provide its functionality to your applications.
          |
          */
      
          use AuthenticatesUsers;
      
          /**
           * Where to redirect users after login.
           *
           * @var string
           */
          protected $redirectTo = '/home';
      
          /**
           * Create a new controller instance.
           *
           * @return void
           */
          public function __construct()
          {
              $this->middleware('guest')->except('logout');
              $this->middleware('guest:adminuser')->except('logout');
              $this->middleware('guest:customer')->except('logout');
          }
          
          /*public function showUserLoginForm() //show backend login form for admin users
          {
              return view('auth.login', ['url' => 'admin']); //edit this line to set path for adminLTE login form
          }*/
      
          public function adminLogin()
          {
              return view('admin.adminLogin');
          }
      
          public function adminHome()
          {
              return view('admin.home');
          }
      
          //login for the Admin user
          public function userLogin(Request $request)
          {
              $this->validate($request, [
                  'username'   => 'required|min:3',
                  'password' => 'required|min:6|max:6'
              ]);
      
              $status = Auth::guard('adminuser')->attempt(['email' => $request->username, 'password' => $request->password]);
              dd($status);
              if ($status == true) {
                  return redirect()->intended('/adminhome');
                  //$request->session()->flash('success', 'Login Successfully!');
                 // return redirect('/adminhome'); // redirect to admin dashboard
              }
              else{
                  $request->session()->flash('error', 'Sorry,Login Unuccessfull!');
                  return redirect()->back();
              }
              //return back()->withInput($request->only('email', 'remember'));
          }
      
      
          //login for the customer
          public function customerLogin(Request $request)
          {
              $this->validate($request, [
                  'username' => 'required|min:3',
                  'password' => 'required|min:6|max:6'
              ]);
              
              $status = Auth::guard('customer')->attempt(['email' => $request->username, 'password' => $request->password], $request->get('remember'));
              if ($status == true) {
                  $request->session()->flash('success', 'Login Successfully!');
                  return redirect('/index');
              }
              else{
                  $request->session()->flash('error', 'Sorry,Login Unuccessfull!');
                  return redirect()->back();
              }
              //return back()->withInput($request->only('email', 'remember'));
          }
      }
      
      

      AdminUser.php Model එක

      <?php
      
      namespace App\Models;
      
      use Illuminate\Database\Eloquent\Model;
      use Illuminate\Notifications\Notifiable;
      use Illuminate\Foundation\Auth\User as Authenticatable;
      
      class AdminUser extends Authenticatable
      {
          protected $table = 'adminusers';
      
          use Notifiable;
      
          protected $guard = 'adminuser';
      
          protected $fillable = [
              'username', 'password',
          ];
      
          protected $hidden = [
              'password', 'remember_token',
          ];
      }
      
      

      auth.php මේකෙ තමා customer , adminuser කියන guards දෙක හදල තියෙන්නෙ

      <?php
      
      return [
      
          /*
          |--------------------------------------------------------------------------
          | Authentication Defaults
          |--------------------------------------------------------------------------
          |
          | This option controls the default authentication "guard" and password
          | reset options for your application. You may change these defaults
          | as required, but they're a perfect start for most applications.
          |
          */
      
          'defaults' => [
              'guard' => 'web',
              'passwords' => 'users',
          ],
      
          /*
          |--------------------------------------------------------------------------
          | Authentication Guards
          |--------------------------------------------------------------------------
          |
          | Next, you may define every authentication guard for your application.
          | Of course, a great default configuration has been defined for you
          | here which uses session storage and the Eloquent user provider.
          |
          | All authentication drivers have a user provider. This defines how the
          | users are actually retrieved out of your database or other storage
          | mechanisms used by this application to persist your user's data.
          |
          | Supported: "session", "token"
          |
          */
      
          'guards' => [
              'web' => [
                  'driver' => 'session',
                  'provider' => 'users',
              ],
      
              'api' => [
                  'driver' => 'token',
                  'provider' => 'users',
                  'hash' => false,
              ],
              'customer' => [
                  'driver' => 'session',
                  'provider' => 'customers',
              ],
              'adminuser' => [
                  'driver' => 'session',
                  'provider' => 'adminusers',
              ],
          ],
      
          /*
          |--------------------------------------------------------------------------
          | User Providers
          |--------------------------------------------------------------------------
          |
          | All authentication drivers have a user provider. This defines how the
          | users are actually retrieved out of your database or other storage
          | mechanisms used by this application to persist your user's data.
          |
          | If you have multiple user tables or models you may configure multiple
          | sources which represent each model / table. These sources may then
          | be assigned to any extra authentication guards you have defined.
          |
          | Supported: "database", "eloquent"
          |
          */
      
          'providers' => [
              'users' => [
                  'driver' => 'eloquent',
                  'model' => App\Models\User::class,
              ],
              'customers' => [
                  'driver' => 'eloquent',
                  'model' => App\Models\Customer::class,
              ],
              'adminusers' => [
                  'driver' => 'eloquent',
                  'model' => App\Models\AdminUser::class, 
              ],
      
              // 'users' => [
              //     'driver' => 'database',
              //     'table' => 'users',
              // ],
          ],
      
          /*
          |--------------------------------------------------------------------------
          | Resetting Passwords
          |--------------------------------------------------------------------------
          |
          | You may specify multiple password reset configurations if you have more
          | than one user table or model in the application and you want to have
          | separate password reset settings based on the specific user types.
          |
          | The expire time is the number of minutes that the reset token should be
          | considered valid. This security feature keeps tokens short-lived so
          | they have less time to be guessed. You may change this as needed.
          |
          */
      
          'passwords' => [
              'users' => [
                  'provider' => 'users',
                  'table' => 'password_resets',
                  'expire' => 60,
              ],
          ],
      
      ];
      
      

      Adminuser login form එක

       <form action="/adminUserLogin" method="POST">
              @csrf
              <div class="input-group mb-3">
                <input type="text" class="form-control" placeholder="Username" name="username" id="username">
                <div class="input-group-append">
                    <span class="fa fa-user input-group-text"></span>
                </div>
              </div>
              <div class="input-group mb-3">
                <input type="password" class="form-control" placeholder="Password" name="password" id="password">
                <div class="input-group-append">
                    <span class="fa fa-lock input-group-text"></span>
                </div>
              </div>
              <div class="row">
                <div class="col-8">
                  <div class="checkbox icheck">
                    <label>
                      <input type="checkbox"> Remember Me
                    </label>
                  </div>
                </div>
                <!-- /.col -->
                <div class="col-4">
                  <button type="submit" class="btn btn-primary btn-block">Sign In</button>
                </div>
                <!-- /.col -->
              </div>
            </form>
      

      කොහොමද මේක හදාගන්නෙ. plz help!

      1 Reply Last reply Reply Quote 0
      • b6
        b6 last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • b6
          b6 last edited by b6

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • root
            root Linux Help last edited by

            Ok. balamu

            hashan 1 Reply Last reply Reply Quote 0
            • hashan
              hashan Web Development @root last edited by

              @root any answer?

              1 Reply Last reply Reply Quote 0
              • Nubelle
                Nubelle Web Development last edited by

                @root @dev_lak ara laravel experts

                1 Reply Last reply Reply Quote 0
                • root
                  root Linux Help last edited by

                  @hashan

                  https://codeburst.io/learn-how-to-redirect-authenticated-users-to-corresponding-path-in-laravel-dd613e2f9e3

                  1 Reply Last reply Reply Quote 0
                  • Anjana_Gihan
                    Anjana_Gihan Web Development last edited by

                    For your reference @cody

                    Nubelle 1 Reply Last reply Reply Quote 0
                    • Nubelle
                      Nubelle Web Development @Anjana_Gihan last edited by

                      @Anjana_Gihan thanks bro i did not use laravel gurd

                      1 Reply Last reply Reply Quote 0
                      • 1 / 1
                      • First post
                        Last post

                      0
                      Online

                      3.7k
                      Users

                      1.3k
                      Topics

                      5.3k
                      Posts

                      • Privacy
                      • Terms & Conditions
                      • Donate

                      © Copyrights and All right reserved Lanka Developers Community

                      Powered by Axis Technologies (PVT) Ltd

                      Made with in Sri Lanka

                      | |