@@ -20,7 +20,7 @@ const Login: NextPage = () => {
20
20
const [ oidcFlow , setOidcFlow ] = useState < LoginFlow > ( ) ;
21
21
const [ selectedRole , setSelectedRole ] = useState < string | undefined > ( 'engineer' ) ;
22
22
const [ isAccLinkageRequested , setIsAccLinkageRequested ] = useState ( false ) ;
23
-
23
+ const [ totpFlow , setTotpFlow ] = useState < LoginFlow > ( ) ;
24
24
// Get ?flow=... from the URL
25
25
const router = useRouter ( )
26
26
const {
@@ -90,6 +90,13 @@ const Login: NextPage = () => {
90
90
submitNode . meta . label . text = "Proceed"
91
91
}
92
92
93
+ if ( initialFlow . ui . nodes . some ( ( node : any ) => node . group === "totp" ) ) {
94
+ const totcData = JSON . parse ( JSON . stringify ( flowData ) ) ;
95
+ totcData . ui . nodes = totcData . ui . nodes . filter ( ( node : any ) => node . group == "totp" || node . group == "default" ) ;
96
+ // prevent duplicate messages
97
+ totcData . ui . messages = [ ] ;
98
+ setTotpFlow ( totcData ) ;
99
+ }
93
100
94
101
if ( flowData . ui . nodes . some ( ( node : any ) => node . group === "oidc" ) ) {
95
102
const oidcData = JSON . parse ( JSON . stringify ( flowData ) ) ;
@@ -164,7 +171,12 @@ const Login: NextPage = () => {
164
171
< div className = "divider-outer" > < span className = "divider" > Or</ span > </ div >
165
172
< Flow onSubmit = { onSubmit } flow = { oidcFlow } only = "oidc" />
166
173
</ > : null }
174
+ { totpFlow ?
175
+ < >
176
+ < Flow onSubmit = { onSubmit } flow = { totpFlow } only = "totp" />
177
+ </ > : null }
167
178
</ div > ) : ( < >
179
+
168
180
< fieldset >
169
181
< span className = "typography-h3" >
170
182
Select role
0 commit comments