Browse Source

client login page

Flavionel 5 năm trước cách đây
mục cha
commit
b0c61f0163

+ 24 - 0
app/Http/Controllers/AppSessionController.php

@@ -48,6 +48,30 @@ class AppSessionController extends Controller
         return redirect(route('pro-request-sms-login-token'))->withCookie($cookie);
     }
 
+    public function clientLogIn(){
+        return view('public.client-log-in');
+    }
+
+    public function processClientLogIn(Request $request){
+        $loginUrl = env('BACKEND_URL', 'http://localhost:8080') . '/api/session/proLogIn';
+
+        $response = Http::asForm()->post($loginUrl, [
+            'cellNumber' => $request->get('cellNumber'),
+            'token' => $request->get('token'),
+        ])->json();
+
+        if(!$response['success']){
+            return back()->with("message", $response['message']);
+        }
+
+        $sessionKey = $response['data']["sessionKey"];
+        $request->session()->put("authID", $response['data']["proId"]);
+
+        $cookie = cookie()->forever('sessionKey', $sessionKey, '/');
+
+        return redirect("/mc/dashboard")->withCookie($cookie);
+    }
+
     public function postToAPI(Request $request) {
 
         session()->remove('message');

+ 73 - 0
resources/views/layouts/client-login.blade.php

@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>Stag | Client</title>
+    <!-- Tell the browser to be responsive to screen width -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <!-- Font Awesome -->
+    <link rel="stylesheet" href="/AdminLTE-3.0.5/plugins/fontawesome-free/css/all.min.css">
+    <!-- Ionicons -->
+    <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
+    <!-- icheck bootstrap -->
+    <link rel="stylesheet"
+          href="/AdminLTE-3.0.5/plugins/icheck-bootstrap/icheck-bootstrap.min.css">
+    <!-- Theme style -->
+    <link rel="stylesheet" href="/AdminLTE-3.0.5/dist/css/adminlte.css">
+    <!-- Google Font: Source Sans Pro -->
+    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
+</head>
+<body class="hold-transition login-page">
+
+<style>
+    .auth-branding {
+        background: #444343 !important;
+        box-shadow: none !important;
+        border-bottom: 1px solid #262626;
+        padding: 0.5rem 0;
+        margin: 0;
+        border-top-left-radius: 8px;
+        border-top-right-radius: 8px;
+        font-size: 1.4rem;
+    }
+
+    .auth-branding img {
+        line-height: .8;
+        margin-left: 0;
+        margin-right: .5rem;
+        margin-top: -3px;
+        max-height: 33px;
+    }
+
+    .login-card-body {
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+    }
+</style>
+<div class="login-box">
+    <div class="login-logo auth-branding text-center border-0">
+        <img src="/AdminLTE-3.0.5/dist/img/AdminLTELogo.png" alt="AdminLTE Logo" class="brand-image img-circle elevation-3"
+             style="opacity: .8">
+        <span class="brand-text font-weight-light text-white"><b>Stag</b> Guest</span>
+    </div>
+    <!-- /.login-logo -->
+    <div class="card">
+        <div class="card-body login-card-body">
+            @yield('content')
+        </div>
+        <!-- /.login-card-body -->
+    </div>
+</div>
+<!-- /.login-box -->
+
+<!-- jQuery -->
+<script src="/AdminLTE-3.0.5/plugins/jquery/jquery.min.js"></script>
+<!-- Bootstrap 4 -->
+<script src="/AdminLTE-3.0.5/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
+<!-- AdminLTE App -->
+<script src="/AdminLTE-3.0.5/dist/js/adminlte.js"></script>
+
+</body>
+</html>

+ 32 - 0
resources/views/public/client-log-in.blade.php

@@ -0,0 +1,32 @@
+@extends('layouts.login')
+@section('content')
+    <form action="{{ route('process-pro-login') }}"
+          method="post"
+          enctype="multipart/form-data">
+        @csrf
+
+        <p class="login-box-msg">Enter the code received on your phone</p>
+
+        @if (session('message'))
+            <div class="alert alert-danger">{{ session('message') }}</div>
+        @endif
+
+        <div class="input-group mb-3">
+            <input type="text" name="cellNumber" class="form-control" placeholder="Cell Number" required>
+            <div class="input-group-append">
+                <div class="input-group-text">
+                    <span class="fas fa-phone"></span>
+                </div>
+            </div>
+        </div>
+        <div class="input-group mb-3">
+            <input type="text" name="token" class="form-control" placeholder="Token" required>
+            <div class="input-group-append">
+                <div class="input-group-text">
+                    <span class="fas fa-key"></span>
+                </div>
+            </div>
+        </div>
+        <button type="submit" class="btn btn-primary btn-block mx-auto w-50 mt-4 mb-2">Log In</button>
+    </form>
+@endsection

+ 2 - 0
routes/web.php

@@ -35,6 +35,8 @@ Route::middleware('ensureNoValidSession')->group(function(){
     Route::get('/', 'AppSessionController@proRequestSmsLogInToken')->name('pro-request-sms-login-token');
     Route::get('/pro/login', 'AppSessionController@proLogIn')->name('pro-login');
     Route::post('/pro/login', 'AppSessionController@processProLogIn')->name('process-pro-login');
+    Route::get('/client/login', 'AppSessionController@clientLogIn')->name('client-login');
+    Route::get('/client/login', 'AppSessionController@clientLogIn')->name('process-client-login');
 });
 
 Route::middleware('ensureValidSession')->group(function(){