Josh 4 лет назад
Родитель
Сommit
a089420bac
2 измененных файлов с 22 добавлено и 1 удалено
  1. 21 0
      app/Http/Controllers/AppSessionController.php
  2. 1 1
      routes/web.php

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

@@ -287,6 +287,27 @@ class AppSessionController extends Controller
         }
     }
 
+    public function loginWithSessionKey($sessionKey, Request $request){
+        $url = "session/pro_log_in_with_session_key/${sessionKey}";
+        $api = new Backend();
+        try {
+            $apiResponse = $api->post($url, []);
+            $data = json_decode($apiResponse->getContents());
+
+            if (!property_exists($data, 'success') || !$data->success) {
+                return redirect('/mc');
+            }
+
+
+            Cookie::queue('sessionKey', $data->data->sessionKey);
+
+            return redirect('/');
+
+        } catch (\Exception $e) {
+            return redirect('/');
+        }
+    } 
+
     public function postToAPI(Request $request) {
 
         session()->remove('message');

+ 1 - 1
routes/web.php

@@ -50,6 +50,7 @@ Route::middleware('ensureValidClientSession')->group(function() {
 Route::middleware('ensureNoValidProSession')->group(function() {
     Route::get('/login', 'AppSessionController@proLogIn')->name('login');
     Route::post('/login', 'AppSessionController@login')->name('process-login');
+    Route::get('/pro_log_in_with_session_key/{sessionKey}', 'AppSessionController@loginWithSessionKey')->name('login_with_session_key');
 });
 
 // request password
@@ -58,7 +59,6 @@ Route::post('request_password_reset', 'AppSessionController@processRequestPasswo
 Route::get('self_reset_password', 'AppSessionController@showSelfResetPassword')->name('self_reset_password');
 Route::post('self_reset_password', 'AppSessionController@processSelfResetPassword')->name('process_self_reset_password');
 
-
 Route::post('/resend_sms_auth_token', 'AppSessionController@resendSmsAuthToken')->name('post-resend_sms_auth_token');
 Route::get('/pro/logout', 'AppSessionController@processProLogOut')->name('pro-logout');