【问题标题】:How to authenticate a Phoenix socket using Pow?如何使用 Pow 验证 Phoenix 套接字?
【发布时间】:2020-04-13 08:07:39
【问题描述】:

据我所知,从会话中对用户进行身份验证的唯一方法是使用 Pow.Plug.authenticate_user/2,但这需要 Plug.Conn,而不是套接字。我希望我的 user_socket.ex 文件在 Phoenix 生成的 connect/3 函数中以通常的方式对连接进行身份验证,但我不确定如何使用 Pow 执行此操作。

我知道身份验证通常是在 connect/3 中使用 Phoenix.Tokens 完成的,但我的会话已经包含通过 PowPersistentSession 扩展创建的令牌,而且显然由于跨源攻击,无论如何访问 websockets 中的会话是不安全的。

不是询问如何在频道中访问会话;我在问如何使用 Pow 验证套接字

【问题讨论】:

标签: elixir phoenix-framework


【解决方案1】:

AFAIK,没有简单的方法来使用 Pow 验证 WebSocket 连接,因为 Phoenix 不会向开发人员公开 ws 连接的握手阶段。问题是为什么你不想使用默认的令牌认证策略? Phoenix频道的token认证是相当不错的,只要签署token的key足够强,可以防止客户端伪造token。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2017-02-09
    • 2016-01-21
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多