Merge branch 'add-secure-and-samesite-cookie-flags' into 'develop'
[akkoma] / lib / pleroma / web / oauth / oauth_controller.ex
index 934171585ecead6b9f98f2b80fdacfd87a76047a..160cedd8ee304f3ab103e9097a630ea9fcbfa2f3 100644 (file)
@@ -118,6 +118,18 @@ defmodule Pleroma.Web.OAuth.OAuthController do
     token_exchange(conn, params)
   end
 
+  def token_revoke(conn, %{"token" => token} = params) do
+    with %App{} = app <- get_app_from_request(conn, params),
+         %Token{} = token <- Repo.get_by(Token, token: token, app_id: app.id),
+         {:ok, %Token{}} <- Repo.delete(token) do
+      json(conn, %{})
+    else
+      _error ->
+        # RFC 7009: invalid tokens [in the request] do not cause an error response
+        json(conn, %{})
+    end
+  end
+
   defp fix_padding(token) do
     token
     |> Base.url_decode64!(padding: false)