Mint version updated

This commit is contained in:
2020-06-16 20:20:49 +03:00
parent 96222a99a3
commit 62c62f01df
5 changed files with 43 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
defmodule YandexTranslate.Auth.IAMToken do
alias YandexTranslate.Auth.JWTTokenConfig
alias YandexTranslate.Auth.SignerConfig
def get_auth_value() do
"Bearer " <> get_iam_token()
@@ -8,12 +8,19 @@ defmodule YandexTranslate.Auth.IAMToken do
def get_iam_token() do
# Rewrite needed, signing process not worked. Fucking PS256 and hash length optoins on my opinion
# Pluged by old IAMToken
"CggVAgAAABoBMRKABDnO1uw1a7U-AIlRglhz8yQVQzXaKjXt1saXk5VDXHH41mlPpMpK3V9-GUgthtdposNYva9hj0DaaHE1YDZfBcZkiZU7T_45ilhFtouG5rARRP8E6GqR4-dMutrYo69XQ3Uj4-KPa0IkOa2HrCTJEePhDHGlz-iW_YnN0QXFIlKN7NMIrZQyYRJ1dvQExx29TARcy_OVWOO8234rU_Vi5BRBKXTfp7NFB589bMe6UhEoYTF-1PdOEtxDJ2DLMdqMiYw4BZnyhOwn81u8kAetHpC-R6kizR8P2omcMyZORk4zwMfgdWlDzAhrIGq4ev8aOpcQH2vH8xh8ZMTgqbRZ9rezOflEZ3bDdDVdcQWjMq4ZYABY1n278pzhucbiTZJl6uxxTXg9Ucbg7_9mpA8DOIBn72wx8dTmrJgXWTstSJ6aShpg_1VJE48gUSenO1AjXWnat9hcvhgrBGKdQFlmhqnrRTptnvhgdNctwvD_tjpjC9ZWa5pBPyE9pKdiZzYUkhSEKEpRKFAh7oGv4i0w5gCHDzQrQfrrMFxFUUPJCg8Hx0tUbLqMgF9sYXYS4vhJFWFtBl_x0dd3KMPy33Fg4oDxlbZwsolyrVI9QnT9Es2qXGp1Sw9TLMM3pAI8G8JOD7O8eTRCJalRrrFOgybbK8LjK7AKLBhI0MNtQs0A_QS-GnYKIGIxODQ5YTljMmQ4ZjRiNjQ5YTU1MzhhN2E1OTdkNDU3ELTgzugFGPSx0egFIj4KFGFqZTB1czQyMWdoNG9idmJwcW5iEg5leGNoYW5nZXJzNGRldioUYjFnbmw5N3VkNzltYXA3bmhnM2wwAjAFOAFQAVoA"
end
def get_jwt_token() do
signer = Joken.Signer.create("PS256", %{"pem" => get_rsa_key(:private)}, get_headers())
JWTTokenConfig.generate_and_sign(%{}, signer) |> elem(1)
{:ok, token, _payload} = SignerConfig.generate_and_sign(%{}, signer)
token
# {:ok, payload_map} = SignerConfig.generate_claims()
# {:ok, payload} = Jason.encode(payload_map)
# headers = Map.merge(get_headers(), %{"alg" => "PS256", "typ" => "JWT"})
# key = get_rsa_key(:private) |> JOSE.JWK.from_pem()
# {_alg, jwt} = JOSE.JWS.sign(key, payload, headers) |> JOSE.JWS.compact()
# jwt
end
defp get_headers(kid \\ Application.get_env(:yandex_translate, :authorized_key_id)),
@@ -31,7 +38,9 @@ defmodule YandexTranslate.Auth.IAMToken do
|> elem(1)
end
defp fetch_key("-----BEGIN" <> _ = key_content), do: key_content
defp fetch_key("-----BEGIN" <> _ = key_content) do
key_content
end
defp fetch_key(key_file), do: File.read!(key_file) |> fetch_key()
end

View File

@@ -1,15 +0,0 @@
defmodule YandexTranslate.Auth.JWTTokenConfig do
@iam_token_url "https://iam.api.cloud.yandex.net/iam/v1/tokens"
use Joken.Config
@impl Joken.Config
def token_config() do
default_claims(
iss: Application.get_env(:yandex_translate, :service_account_id),
default_exp: 60 * 60,
skip: [:jti, :nbf],
aud: Application.get_env(:yandex_translate, :iam_token_url) || @iam_token_url
)
end
end

View File

@@ -0,0 +1,22 @@
defmodule YandexTranslate.Auth.SignerConfig do
@iam_token_url "https://iam.api.cloud.yandex.net/iam/v1/tokens"
use Joken.Config
# defp iss, do: Application.get_env(:yandex_translate, :service_account_id)
# defp aud, do: Application.get_env(:yandex_translate, :iam_token_url) || @iam_token_url
@impl Joken.Config
def token_config() do
default_claims(
iss: Application.get_env(:yandex_translate, :service_account_id),
default_exp: 59 * 60,
skip: [:jti, :nbf],
aud: Application.get_env(:yandex_translate, :iam_token_url) || @iam_token_url
)
# default_claims(skip: [:aud, :iss, :jti, :nbf])
# |> add_claim("aud", nil, &(&1 == iss()))
# |> add_claim("iss", nil, &(&1 == aud()))
end
end