Add fix to switch to supported authentication schemes

This commit is contained in:
Omar Roth 2018-07-26 10:20:15 -05:00
parent 73443143cf
commit 686e17f489

View File

@ -1124,7 +1124,18 @@ post "/login" do |env|
if challenge_results[0][-1][0].as_a? if challenge_results[0][-1][0].as_a?
# Prefer Authenticator app and SMS over unsupported protocols # Prefer Authenticator app and SMS over unsupported protocols
if challenge_results[0][-1][0][0][8] != 6 || challenge_results[0][-1][0][0][8] != 9
tfa = challenge_results[0][-1][0].as_a.select { |auth_type| auth_type[8] == 6 || auth_type[8] == 9 }[0] tfa = challenge_results[0][-1][0].as_a.select { |auth_type| auth_type[8] == 6 || auth_type[8] == 9 }[0]
select_challenge = "[#{challenge_results[0][-1][0].as_a.index(tfa).not_nil!}]"
tl = challenge_results[1][2]
tfa = client.post("/_/signin/selectchallenge?TL=#{tl}", headers, login_req(inputs, select_challenge)).body
tfa = tfa[5..-1]
tfa = JSON.parse(tfa)[0][-1]
else
tfa = challenge_results[0][-1][0][0]
end
if tfa[2] == "TWO_STEP_VERIFICATION" if tfa[2] == "TWO_STEP_VERIFICATION"
if tfa[5] == "QUOTA_EXCEEDED" if tfa[5] == "QUOTA_EXCEEDED"