Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebSockets authentication

What are the possible ways to authenticate user when websocket connection is used?

Example scenario: Web based multi-user chat application through encrypted websocket connection. How can I ensure (or guarantee) that each connection in this application belongs to certain authenticated user and "can't be" exploited by false user impersonation during the connection.

like image 321
yojimbo87 Avatar asked Apr 23 '10 19:04

yojimbo87


1 Answers

If you're already doing authentication for the non-websocket part of your app, just pass the session cookie along as the first message after connecting and check the cookie as you normally would.

WARNING: It's been pointed out that the following doesn't work when flashsockets are used:
If you're using socket.io, it's even easier—the cookies are passed through automatically on connection, and can be accessed like the following:

var io = require('socket.io'); var socket = io.listen(app);  socket.on('connection', function(client){      cookies = client.headers['cookie']; }); 
like image 184
Derek Dahmer Avatar answered Sep 19 '22 14:09

Derek Dahmer