【发布时间】:2023-04-05 13:23:01
【问题描述】:
使用凤凰框架: 我正在尝试读取授权插件中的 cookie。这是一个签名的 cookie,但我无法再次解密它。我如何获得它的价值?
路由器
pipeline :api do
plug :accepts, ["json"]
plug :fetch_session
plug :put_secure_browser_headers
plug :protect_from_forgery
plug SmiksAanvraagWeb.Plugs.Auth
end
我的身份验证插件
@moduledoc false
def init(_opts) do
end
def call(conn, _) do
IO.inspect conn.cookies["user"] # RESULT: SFMyNTY.g2gDbQAAAARhYWFhbgYA3I_DCncBYgANLwA.wUU0R4tdGDlFgS_o7GOEN7TqPjzLhmQNEJphJtXdEo8
【问题讨论】:
-
为什么要直接阅读而不是使用会话机制?
-
因为客户端提交 Ajax 调用后我的会话丢失了。
-
你试过
Phoenix.Token.verify/3吗?Phoenix.Token.verify(YourappWeb.Endpoint, app_secret, conn.cookies["user"]) -
我通过手动解码来让它工作,就像他们在这里解释的那样bitcrowd.dev/decoding-phoenix-session-cookies
-
作为那篇博文的作者,我很高兴你发现它有帮助 :) @KristofvanWoensel
标签: cookies elixir phoenix-framework