Pārlūkot izejas kodu

refactor: fix bug with same user connection twice

Sergey 3 gadi atpakaļ
vecāks
revīzija
b082a31ed5

+ 5 - 6
backend/app.js

@@ -100,24 +100,26 @@ app.post('/login', async (req, res) => {
 io.use( async (socket, next) => {
     const token = socket.handshake.auth.token;
     const sockets = await io.fetchSockets();
-
+    
     if(!token) {
         socket.disconnect();
         return;
     }
 
-
+console.log('here', token)
     const usersOnline = [];
     sockets.map((sock) => {
         usersOnline.push(sock.user);
     }) 
 
-
+   
     try {
         const user = jwt.verify(token, TOKEN_KEY);
         userName = user.userName;
         const dbUser = await getOneUser(userName);
 
+ console.log('here', userName)
+
         if(dbUser.isBanned){
             socket.disconnect();
             return;
@@ -129,13 +131,10 @@ io.use( async (socket, next) => {
         if(exist) {  //&& !user.isAdmin  - add for two or more admins 
             console.log(exist.userName, 'exist twice entering...')   
             exist.disconnect(); 
-            return;
         } 
-     
     } catch(e) {
         console.log(e);
         socket.disconnect();
-        return;
     }
     next();
 });

+ 0 - 1
frontend/src/App.js

@@ -22,7 +22,6 @@ function App() {
                     }}/> 
         }
     return <LoginForm onSubmit={setToken}/>; // delete setTokek after unmounted
-
 }
 
 export default App;

+ 3 - 2
frontend/src/components/chatPage/ChatPage.js

@@ -19,9 +19,10 @@ export const ChatPage = ({ onExit, token }) => {
     const [allUsers, setAllUsers] = useState([])
     const randomColor = require('randomcolor'); 
     const endMessages = useRef(null);
-
+   
     useEffect(() => {
         if(token){
+            
             try {
                 setSocket(io.connect( 
                         process.env.REACT_APP_SERVER_URL || 'http://localhost:5000', 
@@ -34,7 +35,7 @@ export const ChatPage = ({ onExit, token }) => {
     }, [token])
 
     useEffect(() => {
-    
+
         if(socket){
             socket.on('connected', (data) => {
                 setUser(data);