]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Authentication.php
Add search types
[friendica.git] / src / Core / Authentication.php
index 1826602df4bbcf6be6df777e39f487481bc5cbe8..646729c434014ac37794cdedf1ecc3d36c3e9f63 100644 (file)
@@ -5,6 +5,7 @@
 
 namespace Friendica\Core;
 
+use Friendica\App;
 use Friendica\BaseObject;
 use Friendica\Util\BaseURL;
 
@@ -61,5 +62,26 @@ class Authentication extends BaseObject
                session_unset();
                session_destroy();
        }
+
+       public static function twoFactorCheck($uid, App $a)
+       {
+               // Check user setting, if 2FA disabled return
+               if (!PConfig::get($uid, '2fa', 'verified')) {
+                       return;
+               }
+
+               // Check current path, if 2fa authentication module return
+               if ($a->argc > 0 && in_array($a->argv[0], ['ping', '2fa', 'view', 'help', 'api', 'proxy', 'logout'])) {
+                       return;
+               }
+
+               // Case 1: 2FA session present and valid: return
+               if (Session::get('2fa')) {
+                       return;
+               }
+
+               // Case 2: No valid 2FA session: redirect to code verification page
+               $a->internalRedirect('2fa');
+       }
 }