Ignore duplicate create activities.
[akkoma] / lib / pleroma / web / oauth / oauth_controller.ex
index 841df8c32d24d1a5f4b96bf2706f568fd4e61441..94318bfa91e604307431d160c5ccb62666c80bf8 100644 (file)
@@ -5,6 +5,11 @@ defmodule Pleroma.Web.OAuth.OAuthController do
   alias Pleroma.{Repo, User}
   alias Comeonin.Pbkdf2
 
+  plug :fetch_session
+  plug :fetch_flash
+
+  action_fallback Pleroma.Web.OAuth.FallbackController
+
   def authorize(conn, params) do
     render conn, "show.html", %{
       response_type: params["response_type"],
@@ -25,7 +30,8 @@ defmodule Pleroma.Web.OAuth.OAuthController do
           auth: auth
         }
       else
-        url = "#{redirect_uri}?code=#{auth.token}"
+        connector = if String.contains?(redirect_uri, "?"), do: "&", else: "?"
+        url = "#{redirect_uri}#{connector}code=#{auth.token}"
         url = if params["state"] do
           url <> "&state=#{params["state"]}"
         else