我们使用Erlang / Cowboy开发基于WebSockets的简单聊天服务。当用户连接时,将根据URL参数进行身份验证,并且它将为连接返回用户ID或none。
我的愚蠢问题是,如何将用户ID存储到请求数据结构中,用户ID可以用于以后的进程?
答案 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}}}.