Skip to content

Commit 597933c

Browse files
authored
Merge pull request #167 from flexibility-org/master
Add "Accept: application/json" header by default for get_token
2 parents 00640c3 + d705b31 commit 597933c

File tree

4 files changed

+23
-14
lines changed

4 files changed

+23
-14
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## v2.0.1 (2022-06-20)
4+
5+
### Bug fixes
6+
7+
- Fix incorrect Accept header when requesting token
8+
39
## v2.0.0 (2019-07-15)
410

511
### Bug fixes (possibly backwards incompatible)

lib/oauth2/client.ex

+5-2
Original file line numberDiff line numberDiff line change
@@ -478,8 +478,11 @@ defmodule OAuth2.Client do
478478
|> to_url(:token_url)
479479
end
480480

481-
defp token_post_header(%Client{token_method: :post} = client),
482-
do: put_header(client, "content-type", "application/x-www-form-urlencoded")
481+
defp token_post_header(%Client{token_method: :post} = client) do
482+
client
483+
|> put_header("content-type", "application/x-www-form-urlencoded")
484+
|> put_header("accept", "application/json")
485+
end
483486

484487
defp token_post_header(%Client{} = client), do: client
485488

mix.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule OAuth2.Mixfile do
22
use Mix.Project
33

44
@source_url "https://github.com/scrogson/oauth2"
5-
@version "2.0.0"
5+
@version "2.0.1"
66

77
def project do
88
[

test/oauth2/client_test.exs

+11-11
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,23 @@ defmodule OAuth2.ClientTest do
3939
test "get_token, get_token!", %{client: client, server: server} do
4040
bypass(server, "POST", "/oauth/token", fn conn ->
4141
assert conn.query_string == ""
42+
assert get_req_header(conn, "accept") == ["application/json"]
43+
4244
send_resp(conn, 200, ~s({"access_token":"test1234"}))
4345
end)
4446

45-
assert {:ok, client} =
46-
Client.get_token(client, [code: "code1234"], [{"accept", "application/json"}])
47-
47+
assert {:ok, client} = Client.get_token(client, code: "code1234")
4848
assert client.token.access_token == "test1234"
4949

50-
assert %Client{} =
51-
Client.get_token!(client, [code: "code1234"], [{"accept", "application/json"}])
50+
assert %Client{} = Client.get_token!(client, code: "code1234")
5251
end
5352

5453
test "get_token, get_token! when `:token_method` is `:get`", %{client: client, server: server} do
5554
client = %{client | token_method: :get}
5655

5756
bypass(server, "GET", "/oauth/token", fn conn ->
5857
refute conn.query_string == ""
58+
assert get_req_header(conn, "accept") == ["application/json"]
5959
assert conn.query_params["code"] == "code1234"
6060
assert conn.query_params["redirect_uri"]
6161
send_resp(conn, 200, ~s({"access_token":"test1234","token_type":"bearer"}))
@@ -69,19 +69,19 @@ defmodule OAuth2.ClientTest do
6969

7070
test "get_token, get_token! when response error", %{client: client, server: server} do
7171
code = [code: "code1234"]
72-
headers = [{"accept", "application/json"}]
7372

7473
bypass(server, "POST", "/oauth/token", fn conn ->
7574
assert conn.query_string == ""
75+
assert get_req_header(conn, "accept") == ["application/json"]
7676
send_resp(conn, 500, ~s({"error":"missing_client_id"}))
7777
end)
7878

79-
assert {:error, error} = Client.get_token(client, code, headers)
79+
assert {:error, error} = Client.get_token(client, code)
8080
assert %Response{body: body, status_code: 500} = error
8181
assert body == %{"error" => "missing_client_id"}
8282

8383
assert_raise OAuth2.Error, ~r/Body/, fn ->
84-
Client.get_token!(client, code, headers)
84+
Client.get_token!(client, code)
8585
end
8686
end
8787

@@ -112,11 +112,11 @@ defmodule OAuth2.ClientTest do
112112

113113
token = client.token
114114
client = %{client | token: %{token | refresh_token: "abcdefg"}}
115-
assert {:ok, client_a} = Client.refresh_token(client, [], [{"accept", "application/json"}])
115+
assert {:ok, client_a} = Client.refresh_token(client, [])
116116
assert client_a.token.access_token == "new-access-token"
117117
assert client_a.token.refresh_token == "new-refresh-token"
118118

119-
assert client_b = Client.refresh_token!(client, [], [{"accept", "application/json"}])
119+
assert client_b = Client.refresh_token!(client, [])
120120
assert client_b.token.access_token == "new-access-token"
121121
assert client_b.token.refresh_token == "new-refresh-token"
122122
end
@@ -138,7 +138,7 @@ defmodule OAuth2.ClientTest do
138138

139139
token = client.token
140140
client = %{client | token: %{token | refresh_token: "old-refresh-token"}}
141-
assert {:ok, client} = Client.refresh_token(client, [], [{"accept", "application/json"}])
141+
assert {:ok, client} = Client.refresh_token(client, [])
142142
assert client.token.access_token == "new-access-token"
143143
assert client.token.refresh_token == "old-refresh-token"
144144
end

0 commit comments

Comments
 (0)