我开始学习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。
答案 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会话的连接。