Merge branch 'bugfix/missing-url-encoding-oauth-token-redirect' into 'develop'
[akkoma] / lib / pleroma / web / oauth / oauth_controller.ex
index 160cedd8ee304f3ab103e9097a630ea9fcbfa2f3..5441ee0a829874dce8ed1d8b333bd8f7a0ef675f 100644 (file)
@@ -39,15 +39,18 @@ defmodule Pleroma.Web.OAuth.OAuthController do
         })
       else
         connector = if String.contains?(redirect_uri, "?"), do: "&", else: "?"
-        url = "#{redirect_uri}#{connector}code=#{auth.token}"
+        url = "#{redirect_uri}#{connector}"
+        url_params = %{:code => auth.token}
 
-        url =
+        url_params =
           if params["state"] do
-            url <> "&state=#{params["state"]}"
+            Map.put(url_params, :state, params["state"])
           else
-            url
+            url_params
           end
 
+        url = "#{url}#{Plug.Conn.Query.encode(url_params)}"
+
         redirect(conn, external: url)
       end
     end