【发布时间】:2019-08-28 12:22:49
【问题描述】:
我在变更集管道中有加密令牌的功能。
def changeset(user, params \\ %{}) do
user
|> cast(params, [:id, :token]
|> encrypt(:token)
end
由于这个功能是新的,所以旧的数据仍然没有加密,我需要手动做。然后我遇到了问题。
如果我将原始的 token 传递给变更集,它会将值视为没有更改。管道中的encrypt 不起作用,值未更新。
如果我加密了 token 并传递给变更集,它将标记为更改,并应用了 encrypt 函数。但是,它加密了twice。
一种笨拙的方法是在encrypt 上添加检查以检查token 是否已加密。但请记住,在我们将新令牌传递给变更集之前,我们仍然需要检查令牌是否已加密。也就是说,我们会进行两次检查。
所以如果有人有这个想法,我正在寻找一个简单的解决方案。
干杯
【问题讨论】:
标签: elixir phoenix-framework ecto