- PHP 8.2.6; Phorge at 4d1adf69392a230075b8a4799058821d11cab16d
- As an average user, go to your Multi-Factor Auth settings at http://phorge.localhost/settings/panel/multifactor/
- Select in upper right corner
- In the Choose Factor Type overlay dialog, select Mobile Phone App (TOTP)
[2023-05-12 16:56:32] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261] arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=2faauth, ref.master=4d1adf69392a, ref.2faauth=3c5ca2c1fcac) #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/settings/panel/PhabricatorMultiFactorSettingsPanel.php:260] #1 <#2> PhabricatorMultiFactorSettingsPanel::processNew(AphrontRequest) called at [<phorge>/src/applications/settings/panel/PhabricatorMultiFactorSettingsPanel.php:39] #2 <#2> PhabricatorMultiFactorSettingsPanel::processRequest(AphrontRequest) called at [<phorge>/src/applications/settings/controller/PhabricatorSettingsMainController.php:107] #3 <#2> PhabricatorSettingsMainController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #4 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #5 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #6 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #7 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203] #8 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
- Fix that exception; correctly end up on page "Add Authentication Factor" at http://phorge.localhost/settings/user/user3/page/multifactor/?providerPHID=PHID-FPRV-12345678901234567890
- Select Continue button
[2023-05-12 16:58:20] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261] arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=2fauser, ref.master=4d1adf69392a, ref.2fauser=4d1adf69392a) #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/auth/factor/PhabricatorAuthFactor.php:417] #1 <#2> PhabricatorAuthFactor::loadMFASyncToken(PhabricatorAuthFactorProvider, AphrontRequest, AphrontFormView, PhabricatorUser) called at [<phorge>/src/applications/auth/factor/PhabricatorTOTPAuthFactor.php:60] #2 <#2> PhabricatorTOTPAuthFactor::processAddFactorForm(PhabricatorAuthFactorProvider, AphrontFormView, AphrontRequest, PhabricatorUser) called at [<phorge>/src/applications/auth/storage/PhabricatorAuthFactorProvider.php:101] #3 <#2> PhabricatorAuthFactorProvider::processAddFactorForm(AphrontFormView, AphrontRequest, PhabricatorUser) called at [<phorge>/src/applications/settings/panel/PhabricatorMultiFactorSettingsPanel.php:294] #4 <#2> PhabricatorMultiFactorSettingsPanel::processNew(AphrontRequest) called at [<phorge>/src/applications/settings/panel/PhabricatorMultiFactorSettingsPanel.php:39] #5 <#2> PhabricatorMultiFactorSettingsPanel::processRequest(AphrontRequest) called at [<phorge>/src/applications/settings/controller/PhabricatorSettingsMainController.php:107] #6 <#2> PhabricatorSettingsMainController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #7 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #8 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #9 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #10 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203] #11 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
- Fix that exception; get to page "Add Authentication Factor" at http://phorge.localhost/settings/user/user3/page/multifactor/ which shows a QR code
- Scan code; enter code in field TOTP Code
- Select Continue button
- http://phorge.localhost/settings/user/user3/page/multifactor/?id=1 correctly lists the user's Authentication Factors