summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious.cr11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 041e5850..e3c23d8d 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -880,7 +880,7 @@ post "/login" do |env|
# 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]
- select_challenge = "[2,null,null,null,[#{tfa[8]}]]"
+ select_challenge = {2, nil, nil, nil, {tfa[8]}}.to_json
tl = challenge_results[1][2]
@@ -940,11 +940,10 @@ post "/login" do |env|
headers = login.cookies.add_request_headers(headers)
login = client.get(login.headers["Location"], headers)
-
- headers = HTTP::Headers.new
headers = login.cookies.add_request_headers(headers)
+ cookies = HTTP::Cookies.from_headers(headers)
- sid = login.cookies["SID"].value
+ sid = cookies["SID"].value
user, sid = get_user(sid, headers, PG_DB)
@@ -958,15 +957,17 @@ post "/login" do |env|
secure = false
end
- login.cookies.each do |cookie|
+ cookies.each do |cookie|
if Kemal.config.ssl || config.https_only
cookie.secure = secure
else
cookie.secure = secure
end
+ if cookie.extension
cookie.extension = cookie.extension.not_nil!.gsub(".youtube.com", host)
cookie.extension = cookie.extension.not_nil!.gsub("Secure; ", "")
+ end
env.response.cookies << cookie
end