为牛仔请求添加额外属性

Jas*_* Xu 1 erlang websocket cowboy

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

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

Til*_*man 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}}}.
Run Code Online (Sandbox Code Playgroud)