diff --git a/src/invidious/routes/api/v1/authenticated.cr b/src/invidious/routes/api/v1/authenticated.cr index a35d2f2b2..a5d093176 100644 --- a/src/invidious/routes/api/v1/authenticated.cr +++ b/src/invidious/routes/api/v1/authenticated.cr @@ -398,7 +398,8 @@ module Invidious::Routes::API::V1::Authenticated user = env.get("user").as(User) locale = env.get("preferences").as(Preferences).locale - case env.request.headers["Content-Type"]? + content_type = env.request.headers["Content-Type"]? + case content_type when "application/x-www-form-urlencoded" scopes = env.params.body.select { |k, _| k.match(/^scopes\[\d+\]$/) }.map { |_, v| v } callback_url = env.params.body["callbackUrl"]? @@ -419,7 +420,7 @@ module Invidious::Routes::API::V1::Authenticated callback_url = URI.parse(callback_url) end - if sid = env.get?("sid").try &.as(String) + if sid = env.get?("sid").try &.as(String) && content_type != "application/json" env.response.content_type = "text/html" csrf_token = generate_response(sid, {":authorize_token"}, HMAC_KEY, use_nonce: true)