diff options
author | lambda <lain@soykaf.club> | 2019-05-06 17:51:03 +0000 |
---|---|---|
committer | lambda <lain@soykaf.club> | 2019-05-06 17:51:03 +0000 |
commit | 6b79be4a06064b8bb54fe73c2ac768d10d52068b (patch) | |
tree | db56c5118b7e853f27d5bd0d0782ab72f532d821 /lib/pleroma/web/oauth/token/utils.ex | |
parent | aacac9da0beddcf797958acca330747b8f2d1f06 (diff) | |
parent | 1040caf096347b638b9fda5b23fcccde87b32ede (diff) | |
download | pleroma-6b79be4a06064b8bb54fe73c2ac768d10d52068b.tar.gz |
Merge branch 'issue_800' into 'develop'
[#800] added ability renew access_token by refresh_token
See merge request pleroma/pleroma!1045
Diffstat (limited to 'lib/pleroma/web/oauth/token/utils.ex')
-rw-r--r-- | lib/pleroma/web/oauth/token/utils.ex | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/pleroma/web/oauth/token/utils.ex b/lib/pleroma/web/oauth/token/utils.ex new file mode 100644 index 000000000..a81560a1c --- /dev/null +++ b/lib/pleroma/web/oauth/token/utils.ex @@ -0,0 +1,30 @@ +defmodule Pleroma.Web.OAuth.Token.Utils do + @moduledoc """ + Auxiliary functions for dealing with tokens. + """ + + @doc "convert token inserted_at to unix timestamp" + def format_created_at(%{inserted_at: inserted_at} = _token) do + inserted_at + |> DateTime.from_naive!("Etc/UTC") + |> DateTime.to_unix() + end + + @doc false + @spec generate_token(keyword()) :: binary() + def generate_token(opts \\ []) do + opts + |> Keyword.get(:size, 32) + |> :crypto.strong_rand_bytes() + |> Base.url_encode64(padding: false) + end + + # XXX - for whatever reason our token arrives urlencoded, but Plug.Conn should be + # decoding it. Investigate sometime. + def fix_padding(token) do + token + |> URI.decode() + |> Base.url_decode64!(padding: false) + |> Base.url_encode64(padding: false) + end +end |