Здравствуйте, у меня появился вопрос: "Как зашифровать пароль, если использую плагин mysqljs." А конкретней: Код (Javascript): var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.end(); Как мне спрятать от чужых глаз эти данные?
node.JS это серверный JS, разве нет? Эти скрипты лежат на сервере и они скрыты от посторонних глаз (но это не точно).
Этот код лежит на сервере. от кого прятать? от самого себя? тот кто имеет доступ на сервер сможет всегда его расшифровать. если будет нужно. так что шифровать тут нет смысла. а вот вынести настройки подключения в отдельный файл - смысл есть. тогда в самом коде пароля не будет. можно код хоть на гитхаб выложить хоть на форуме опубликовать.
Вообщем я делаю обычный чат на node.js + php + mysql. Мне нужно как-то передать логин, уже проверенный на php сервере в node. При этом безопасно и чтобы не лезть в дебри авторизации express. --- Добавлено --- У меня появилась идея, создать просто input и после этого внести туда session, id и timeout-session, а в последствии передавать их на сервер. После делать запрос на стороне сервера по этим данным и сверять их, если данные не схожи, то запретить отправку. --- Добавлено --- Но тут появляется вопрос, если пользователь сможет подобрать соль такого вида: f2b1bc6e2337226d7aaa1594a2d7c5d0a8b4e40aa49c3ecc8b5eaa7475ea9a01, но не сможет подобрать конкретный timeout - отправить не получиться, но все же если сможет подобрать, то это не будет безопасным способом.
centrifugo рекомендую https://fzambia.gitbooks.io/centrifugal/content/server/start.html простая как палка.
да, без. нафига нужна эта нода со всеми её проблемами, если есть охуенная центрифуга на го написанная стабильная и многопоточная, быстрая и охуенная. А ещё она охуенная, я говорил?
Так-с, ну ее нужно мне изучать :c --- Добавлено --- { "client": "UNIQUE CLIENT ID SERVER GAVE TO THIS CONNECTION", "expires": "false", "expired": false, "ttl": 0 } Куда такой код писать?
Ну проблема с передачей php юзера в js формат ... Чтобы не светить пользователя: var username=<?=$username?>. Ну это грубо говоря. --- Добавлено --- А еще проверку нужно делать, но это мороки с node.js кучу новых запросов к бд... --- Добавлено --- @igordata , есть документация по PHP? --- Добавлено --- Вот грубо говоря тестовая страница с таким кодом: PHP: $client = new \phpcent\Client("http://localhost:8000"); $client->setSecret("iOJoifj089u210r8amyvyn398vyn839u10984vglsjmdgbhsfulgtlkurehbutuhIUHKUbniurhiudshrliurty767398689hvkjsdnvkjahnbufhabiuhiu"); $client->publish("main_feed", ["message" => "Hello Everybody"]); $history = $client->history("main_feed"); $client->broadcast(['example:entities', 'example:moar'], ['user_id' => 2321321, 'state' => '1']);; Что с ним делать и вообще как это работает, вот не знаю... В документации только JavaScrip вижу...
работает он сам по себе. у него есть API и вот класс для PHP который может делать всякое с центрифугой, например отправлять сообщеньки в каналы. каналы заранее создавать не нужно, просто надо подписаться на них, и когда в такой канал прилетит сообщенька - все, кто подписан получат эту сообщеньку. для PHP в доке вот ссылка на https://github.com/centrifugal/phpcent, там есть примеры серверные методы описаны тут https://fzambia.gitbooks.io/centrifugal/content/server/api.html соотв. в твоём примере ты юзаешь broadcast, указываешь канал и данные, которые придут в этот канал (как отправил, так и придут). Т.е. "['user_id'=>2321321,'state'=>'1']" это просто некие данные, которые могут быть любыми, какими тебе удобно. Соотв. кто подписан на канал, в который ты постишь - все получат то, что отправил. А дальше в js ты уже должен что-то с этими данными сделать. попробуй.
Ага, понял, еще вопрос, а на сайте как центрифугу запускать? Потому что тут я просто запускаю .exe и все, или это работает как тупо консоль? --- Добавлено --- Тут описано, что я создаю поддомен. В конце концов получаю такой адрес: https://centrifuge.mydomains.com/api/ А дальше что? Что внутри? Какой файл создать, дабы писать методы.. --- Добавлено --- Грубо говоря, вот у меня есть Json файл, что с ним делать... Мне как-то не очень понятна инструкция ... Код (Text): { "body": { "channel": "$public:chat", "data": { "a1c2f99d-fdaf-4e00-5f73-fc8a6bb7d239": { "user": "2694", "client": "a1c2f99d-fdaf-4e00-5f73-fc8a6bb7d239", "default_info": { "first_name": "Alexandr", "last_name": "Emelin" }, "channel_info": { "channel_extra_info_example": "you can add additional JSON data when authorizing" } }, "e5ee0ab0-fde1-4543-6f36-13f2201adeac": { "user": "2694", "client": "e5ee0ab0-fde1-4543-6f36-13f2201adeac", "default_info": { "first_name": "Alexandr", "last_name": "Emelin" }, "channel_info": { "channel_extra_info_example": "you can add additional JSON data when authorizing" } } } }, "error": null, "method": "presence" } --- Добавлено --- Как обработать данные канала. Эх, сколько вопросов..
ей указываешь конфиг, или рядом кладёшь (я не помню, глянь в доке) и просто запускаешь она висит я делал файлик, чтобы запускать как сервис, и всё. у центрифуги только один момент, который требует пояснения - приватные каналы. На них можно подписаться только если предоставить хеш, который ты выдаёшь юзеру. Иначе в приватный канал не влезть. Центрифуга полезет на твой какой-то один урл и там проверит этот хеш, т.е. ты его и проверишь и скажешь ей че да как. Посмотри в доке. А на паблик каналах можно всем подключаться ко всем. Почитай в доке про это. Это просто. Ну ещё вот в ней есть возможность разрешать людям писать в канал так, чтобы это рассылалось всем автоматом, т.е. не через php, а просто все подряд кто пишет - всем сразу пересылается само. ну у центрифуги есть для js браузерного либа. Там можно подключиться к твоей работающей центрифуге, подписаться на каналы, будут приходить данные. Всё. А что с ними делать - твоя забота уже.
Проблема в том, что мне нужно на сервере, то есть на хостинге запускать.. А консоль не предоставляется. Я честно говоря не знаю, как запустить центрифугу на хостинге. Грубо говоря, про инсталляцию я толком ничего не увидел.. Запустить удалось, на локальном, это было просто. Но тут вообще все сложно... Как только я стал читать, я английский знаю, сдавал Кембридж и дело не в нем, а в понимании того, что там написана, а по сути ровно ничего. Я открыл вкладку https://github.com/centrifugal/phpcent и не могу разобраться, как, да что сделать... Я установил через composer все данные командой: composer require sl4mmer/phpcent, но ничего мне это не дало. Весь код работает, но как обрабатывать я не нашел. Тогда я пошел дальше и нашел эту ссылку: https://github.com/oleh-ozimok/php-centrifugo, здесь у меня вообще аут, потому что по какой-то причине он не хотел использовать use, хотя я все установил и все должно работать... Вообщем, с одной стороны она вроде и простая как палка, согласен, но только после того, как я разберусь, я понял принцип работы и да, это удобней чем Node, но вот, с socket.io я разобрался, а вот с центрифугой не могу... Если можно, то на примерах показать... Или "тыкнуть" пальцем в документации... Я не могу понять просто.
когда кто-то написал сообщение, то ты аяксом ее посылаешь в пхп скрипт, а он уже пихает в центрифугу в нужный канал. И тогда сообщение уходит всем подписанным клиентам. про хостинг. Просто арендуй впс. --- Добавлено --- композер надо ешё а автолоад файлов полкючить. Смотри доку композера.