Mint version updated
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
22
lib/yandex_translate/auth/signer_config.ex
Normal file
22
lib/yandex_translate/auth/signer_config.ex
Normal 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
|
||||
Reference in New Issue
Block a user