为牛仔请求添加额外属性

时间:2012-10-17 04:34:37

标签: erlang websocket cowboy

我们使用Erlang / Cowboy开发基于WebSockets的简单聊天服务。当用户连接时,将根据URL参数进行身份验证,并且它将为连接返回用户ID或none。

我的愚蠢问题是,如何将用户ID存储到请求数据结构中,用户ID可以用于以后的进程?

1 个答案:

答案 0 :(得分:6)

如果您使用的是cowboy_rest,则可以在授权后使用handler_state存储您的用户数据。类似的东西:

-record(rs_state{user}).
rest_init(Req, Opts) ->
    {ok, Req, #rs_state{}}.

is_authorized(Req, State) ->
    %% authentication code
    {ok, User} = ...
    {true, Req, State#rs_state{user=User}}}.