[#923] OAuth consumer improvements, fixes, refactoring.

This commit is contained in:
Ivan Tashkinov 2019-03-27 15:39:35 +03:00
commit 2a95014b9d
10 changed files with 59 additions and 36 deletions

View file

@ -174,6 +174,25 @@ defmodule Pleroma.Web.OAuth.OAuthController do
end
end
def prepare_request(conn, %{"provider" => provider} = params) do
scope =
oauth_scopes(params, [])
|> Enum.join(" ")
state =
params
|> Map.delete("scopes")
|> Map.put("scope", scope)
|> Poison.encode!()
params =
params
|> Map.drop(~w(scope scopes client_id redirect_uri))
|> Map.put("state", state)
redirect(conn, to: o_auth_path(conn, :request, provider, params))
end
def request(conn, params) do
message =
if params["provider"] do
@ -235,14 +254,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
end
defp callback_params(%{"state" => state} = params) do
[client_id, redirect_uri, scope, state] = String.split(state, "|")
Map.merge(params, %{
"client_id" => client_id,
"redirect_uri" => redirect_uri,
"scope" => scope,
"state" => state
})
Map.merge(params, Poison.decode!(state))
end
def registration_details(conn, params) do