Jos*_*eph 1 elixir phoenix-framework
我想生成一个令牌并将其插入我的mysql数据库,这是当前的代码,我只是传递'123'.mix phoenix.gen.secret可以生成随机字符串如何将它用于我的控制器?
def create(conn, %{"token" => token_params}) do
token_params = Map.merge(token_params, %{"value" => "123"})
changeset = Token.changeset(%Token{}, token_params)
case Repo.insert(changeset) do
{:ok, token} ->
conn
|> put_status(:created)
|> put_resp_header("location", token_path(conn, :show, token))
|> render("show.json", token: token)
{:error, changeset} ->
conn
|> put_status(:unprocessable_entity)
|> render(MyApp.ChangesetView, "error.json", changeset: changeset)
end
Run Code Online (Sandbox Code Playgroud)
结束
您可以使用:crypto.strong_rand_bytes/1,mix phoenix.gen.secret 内部使用:
iex(1)> length = 32
32
iex(3)> :crypto.strong_rand_bytes(length) |> Base.encode64 |> binary_part(0, length)
"YiX2oINVqVWCCQZdmESBN44OxcErAFR4"
iex(4)> :crypto.strong_rand_bytes(length) |> Base.encode64 |> binary_part(0, length)
"ka2PSR9cHYSlD6fhdMpnGHgTVA7AoDwN"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |