Laravel Ratchet socket Auth

时间:2016-01-13 09:20:30

标签: sockets laravel websocket laravel-5 ratchet

我开始学习Ratchet(reactPHP)我正在使用laravel。但我谈到了安全问题。 如何拒绝基于用户登录的websocket连接

public function onOpen(ConnectionInterface $conn)
    {
        $this->clients->attach($conn);
        $this->users[$conn->resourceId] = $conn;
        if(Auth::check()){
            echo 'user logged in';
        }else{
            echo "New connection! ({$conn->resourceId})\n";
        }

    }

我使用了类似的东西,但是它通过了Auth :: check并且控制台总是显示New Connection。

3 个答案:

答案 0 :(得分:0)

好的玩找到解决方案,似乎没问题: 我正在使用Sentinel

DECLARE @Month int = 1 //For January

SELECT BaseDate
FROM CalendarTable cal
LEFT OUTER JOIN ControlTable con
    ON cal.BaseDate = con.businessDate //make sure to cast as a date if it's a datetime
WHERE MONTH(cal.BaseDate) = @Month
AND con.businessDate IS NULL

如果有更好的解决方案,请发表评论

答案 1 :(得分:0)

  

你不能再使用Auth :: user()和WebSocket了。 WebSocket服务器正在处理多个连接(因此Auth :: user()dosent有任何意义)。但是你可以访问用户会话。

此处有更多详情

https://laravel.io/forum/01-16-2015-loading-laravels-session-using-ratchet

答案 2 :(得分:0)

使用laravel-ratchet软件包。

它将为您处理与身份验证转换和laravel会话的连接。