Причина:
При успешном входе AuthFlow не сбрасывается до 0-ого уровня, либо не выгружается из памяти Login сцена, соответственно не вызывается повторный init() (в котором как раз происходит обнуление)
authFlow.clear()
authFlow.add(0)
К чему приводит?
После выхода из аккаунта, и при повторном нажатии на кнопку вход, вызывается функция start(), которая триггерит флоу авторизации без логина и пароля(null, null), т.к. authFlow на 1(а не на нуле), включается TOTP авторизация, поскольку она идет второй.
Рантайм отправляет на бэкенд не полный payload
{"password":{"totp":"239258","type":"totp"}}
А должен отправляться
{"login":"qwerty","password":{"firstPassword":{"password":"superUberPassword","type":"plain"},"secondPassword":{"totp":"496799","type":"totp"},"type":"2fa"}
Бэкэнд такой пейлоад обрабатывать не умеет, т.к. не может понять для какого пользователя пришел totp
Возможный костыль:
В функции start() обнулять authflow т.к. запускается это все дело только без пароля, не должно задеть авторизацию по токену
Куда посмотреть тоже можно:
по логам складывается впечатление, что сцена логина не закрывается после успешной авторизации, а остальные сцены рисуются поверх. Возможно, если закрывать ее корректно, при выходе повторно запустится init(), и флоу обновится
Причина: При успешном входе AuthFlow не сбрасывается до 0-ого уровня, либо не выгружается из памяти Login сцена, соответственно не вызывается повторный init() (в котором как раз происходит обнуление)
К чему приводит? После выхода из аккаунта, и при повторном нажатии на кнопку вход, вызывается функция start(), которая триггерит флоу авторизации без логина и пароля(null, null), т.к. authFlow на 1(а не на нуле), включается TOTP авторизация, поскольку она идет второй.
Рантайм отправляет на бэкенд не полный payload
{"password":{"totp":"239258","type":"totp"}}
А должен отправляться{"login":"qwerty","password":{"firstPassword":{"password":"superUberPassword","type":"plain"},"secondPassword":{"totp":"496799","type":"totp"},"type":"2fa"}
Бэкэнд такой пейлоад обрабатывать не умеет, т.к. не может понять для какого пользователя пришел totp
Возможный костыль: В функции start() обнулять authflow т.к. запускается это все дело только без пароля, не должно задеть авторизацию по токену
Куда посмотреть тоже можно: по логам складывается впечатление, что сцена логина не закрывается после успешной авторизации, а остальные сцены рисуются поверх. Возможно, если закрывать ее корректно, при выходе повторно запустится init(), и флоу обновится