Ver Fonte

Login now needs cellNumber & password

Vijayakrishnan Krishnan há 4 anos atrás
pai
commit
cd3230127b

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

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Lib\Backend;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Cookie;
 use Illuminate\Support\Facades\Http;
@@ -45,8 +46,29 @@ class AppSessionController extends Controller
             return back()->with("message", $response['message']);
         }
         Cookie::queue(Cookie::forget('sessionKey'));
-        //$cookie = cookie()->forget('sessionKey', '/');
-        return redirect(route('pro-request-sms-login-token'))->withCookie($cookie);
+        return redirect(route('pro-request-sms-login-token'));
+    }
+
+
+    public function login(Request $request)
+    {
+        $api = new Backend();
+        try {
+            $apiResponse = $api->post('session/proLogInWithPassword', [
+                'cellNumber' => $request->post('cellNumber'),
+                'password' => $request->post('password')
+            ]);
+            $data = json_decode($apiResponse->getContents());
+            if (!property_exists($data, 'success') || !$data->success) {
+                return back()->with('message', 'Invalid login credentials.')
+                    ->withInput($request->input());
+            }
+            Cookie::queue('sessionKey', $data->data->sessionKey);
+            return redirect('/');
+
+        } catch (\Exception $e) {
+            return redirect()->back()->with('message', $e->getMessage());
+        }
     }
 
     public function postToAPI(Request $request) {

+ 27 - 15
resources/views/public/pro-request-sms-login-token.blade.php

@@ -1,29 +1,41 @@
 @extends('layouts.login')
 @section('content')
-    <form action="/post-to-api"
+    <form action="/login"
           method="post"
-          enctype="multipart/form-data"
-          onsubmit='localStorage.cellNumber = $("[name=cellNumber]").val();'>
+          enctype="multipart/form-data">
         @csrf
 
-        <p class="login-box-msg">Enter your cell phone number to start</p>
-
         @if (session('message'))
             <div class="alert alert-danger">{{ session('message') }}</div>
         @endif
 
-        <input type="hidden" name="_api" value="/api/session/proRequestSmsTokenToLogIn">
-        <input type="hidden" name="_success" value="/pro/login">
-        <input type="hidden" name="_return" value="/">
-
-        <div class="input-group mb-3">
-            <input type="text" name="cellNumber" autofocus class="form-control" placeholder="Cell Number" required>
-            <div class="input-group-append">
-                <div class="input-group-text">
-                    <span class="fas fa-phone"></span>
+        <div class="form-group mb-2">
+            <label class="control-label text-sm text--secondary mb-1 font-weight-normal">Cell Number</label>
+            <div class="input-group">
+                <input type="text" name="cellNumber" autofocus class="form-control" required>
+                <div class="input-group-append">
+                    <div class="input-group-text">
+                        <span class="fas fa-phone"></span>
+                    </div>
                 </div>
             </div>
         </div>
-        <button type="submit" class="btn btn-primary btn-block mx-auto w-50 mt-4 mb-2">Submit</button>
+        <div class="form-group mb-3">
+            <label class="control-label text-sm text--secondary mb-1 font-weight-normal">Password</label>
+            <div class="input-group mb-2">
+                <input type="password" name="password" autofocus class="form-control" required>
+                <div class="input-group-append">
+                    <div class="input-group-text">
+                        <span class="fas fa-key"></span>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="form-group mb-0 d-flex align-items-center">
+            <div>
+                <button type="submit" class="btn btn-primary btn-block px-4 py-1">Submit</button>
+            </div>
+            <a href="#" class=" ml-auto text-secondary text-sm">Forgot password?</a>
+        </div>
     </form>
 @endsection

+ 13 - 35
routes/web.php

@@ -31,67 +31,45 @@ Route::get('/join/{meetingID}', function () {
 Route::get('/meeting/{meetingID}/{participantID}', 'GuestController@meeting');
 */
 
+// client
+// =============================================================================================
 Route::middleware('ensureNoValidClientSession')->group(function() {
     Route::get('/join', 'GuestController@join');
     Route::post('/join', 'GuestController@processJoin');
     Route::get('/client/checkin', 'GuestController@checkin');
     Route::post('/client/checkin', 'GuestController@processCheckin');
 });
-
 Route::middleware('ensureValidClientSession')->group(function() {
     Route::get('/get-client-checkin-token/{uid}', 'GuestController@getCheckinToken');
     Route::get('/client/dashboard', 'GuestController@dashboard');
 });
+// =============================================================================================
 
+// pro
+// =============================================================================================
 Route::middleware('ensureNoValidProSession')->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::post('/login', 'AppSessionController@login')->name('process-login');
+//    Route::get('/pro/login', 'AppSessionController@proLogIn')->name('pro-login');
+//    Route::post('/pro/login', 'AppSessionController@processProLogIn')->name('process-pro-login');
 });
 
 Route::middleware('ensureValidProSession')->group(function() {
     Route::get('/dashboard', 'ProController@dashboard')->name('pro-dashboard');
-
-    // old routes
-//    Route::get("/pros", 'ProController@index')->name('pro-index');
-//    Route::get("/pros/create", 'ProController@create')->name('pro-create');
-//    Route::get("/pros/show/{uid}", 'ProController@show')->name('pro-show');
-
     Route::get('/pro/meet/{uid?}', 'ProController@meet');
     Route::get('/pro/get-opentok-session-key/{uid}', 'ProController@getOpentokSessionKey');
-
     Route::get('/pro/logout', 'AppSessionController@processProLogOut')->name('pro-logout');
-
+    Route::get('/note/{note_uid}', 'NoteController@renderNote')->name('render-note');
+    Route::get('/select_section_template_form/{note_uid}', 'NoteController@selectSectionTemplateForm')->name('select_section_template_form');
+    Route::get('/section_create_form/{note_uid}/{section_template_uid}', 'NoteController@sectionCreateForm')->name('section_create_form');
+    Route::get('/section_update_form/{section_uid}', 'NoteController@sectionUpdateForm')->name('section_update_form');
     @include 'generated.php';
-
-/*    Route::get('/mc/{fragment}', 'MeetingCenterController@mc')
-        ->where('fragment', '.+')
-        ->name('mc');*/
-
 });
 
 Route::post('/post-to-api', 'AppSessionController@postToAPI')->name('post-to-api');
 Route::post('/post-to-api-ajax', 'AppSessionController@postToAPIAjax')->name('post-to-api-ajax');
-
-//
-//Route::middleware('ensureOnlyStrangerSession')->group(function(){
-//	Route::get('/client/{url_slug}', 'ClientController@entranceLobby')->name('client-lobby');
-//});
-//Route::get('/client/meeting/{meeting_uid}', 'ClientController@entranceLobby')->name('join-meeting');
-
-//Route::bind('url_slug', function($value, $route)
-//{
-//    return Lobby::where('url_slug', $value)->first();
-//});
-
-Route::get('/note/{note_uid}', 'NoteController@renderNote')->name('render-note');
-Route::get('/select_section_template_form/{note_uid}', 'NoteController@selectSectionTemplateForm')->name('select_section_template_form');
-Route::get('/section_create_form/{note_uid}/{section_template_uid}', 'NoteController@sectionCreateForm')->name('section_create_form');
-Route::get('/section_update_form/{section_uid}', 'NoteController@sectionUpdateForm')->name('section_update_form');
 Route::post("/process_form_submit", 'NoteController@processFormSubmit')->name('process_form_submit');
 if (env('APP_ENV') === 'production') {
     URL::forceScheme('https');
 }
-//if (env('APP_ENV') === 'production') {
-//    URL::forceScheme('https');
-//}
+// =============================================================================================