2012-10-17 3 views
1

Nous avons utilisé Erlang/Cowboy pour développer un service simple basé sur WebSockets Chat. Lorsque l'utilisateur se connecte, une authentification est effectuée en fonction du paramètre d'URL et renvoie l'ID utilisateur ou aucun pour la connexion.Ajouter à la propriété supplémentaire Cowboy Demande

Ma question stupide est, comment stocker l'ID utilisateur dans la structure de données de demande et l'ID utilisateur peut être obtenir plus tard sur les processus?

Répondre

6

Si vous utilisez cowboy_rest vous pouvez utiliser le handler_state pour stocker vos données d'utilisateur après autorisation. Quelque chose comme:

-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

Je l'ai, merci. Je pensais stocker l'identifiant de l'utilisateur à Req, c'est faux, devrait stocker à l'état. –

Questions connexes