diff --git a/src/invidious.cr b/src/invidious.cr index f03c3e87..34900d6d 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -525,12 +525,16 @@ post "/login" do |env| tl = challenge_results[1][2] request_type = tfa[8] - if request_type == 6 - # Google Authenticator code + case request_type + when 6 + # Authenticator app tfa_req = %(["#{user_hash}",null,2,null,[6,null,null,null,null,["#{tfa_code}",false]]]) - else - # SMS + when 9 + # Voice or text message tfa_req = %(["#{user_hash}",null,2,null,[9,null,null,null,null,null,null,null,[null,"#{tfa_code}",false,2]]]) + else + error_message = "Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled." + next templated "error" end challenge_results = client.post("/_/signin/challenge?hl=en&TL=#{tl}", headers, login_req(inputs, tfa_req))