2012-10-17 96 views
1

我們使用Erlang/Cowboy開發基於WebSockets的簡單聊天服務。當用戶連接時,認證將根據URL參數完成,並且它將返回用戶ID或無連接。將附加屬性添加到牛仔請求

我的一個愚蠢的問題是,如何將用戶標識存儲到請求數據結構中,並且可以獲取用戶標識以用於後續進程?

回答

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}}}. 
+0

明白了,謝謝。我想將用戶ID存儲到Req,這是錯誤的,應該存儲到狀態。 –