Я новичок в QuickBlox и у меня есть пара вопросов. Я пробовал искать в StackOverflow и в других местах, но, похоже, нет ответов на мои вопросы.
Я вполне мог бы что-то пропустить в документации QuickBlox (или не знать что-то в отношении JavaScript).
Это относится к JavaScript SDK, так как я буду использовать его для реализации функции чата. Идея состоит в том, чтобы добавить функцию чата в веб-приложение, созданное с помощью Laravel.
Мой первый вопрос касается инициализации / авторизации. Кажется, очень небезопасно иметь ключи аутентификации QuickBlox в файле JavaScript, так как файл можно легко просмотреть с помощью опции просмотра исходного кода в браузере.
Как бы вы скрыли эту конфиденциальную информацию ??
Имея это в виду, я решил сделать это с помощью PHP. Используя пример кода из документации, я могу успешно получить токен сеанса. Затем я получил копию приложения чата из SDK и пытался интегрировать в него код PHP, чтобы вместо использования config.js он использовал мой php для получения токена и передачи его в QB.init. Но похоже, что не работает.
Приложение чата просто сидит там. Глядя на отладчик JS в Firebug, кажется, что выдается исключение: невозможно создать новый сеанс без учетных данных приложения. Что меня озадачивает, когда я получаю это через PHP? Почему он потерпит неудачу на стороне JavaScript?
Благодарю.
Замечательно! Я уже представил это как вопрос им:
https://github.com/QuickBlox/quickblox-javascript-sdk/issues/72
Для решения проблемы выполните следующие действия (это обходной путь):
QB.init(token, false, false, QBConfig);
QB.service.getSession().application_id = your_app_id;
И .. У меня есть идея для пиара, но на самом деле обходной путь подойдет.
РЕДАКТИРОВАТЬ:
Попробуйте следующее …
var QBConfig = {
chatProtocol: {
active: 2
},
debug: !true,
webrtc: {
answerTimeInterval: 30,
dialingTimeInterval: 5
},
creds: {
appId: YOUR_APP_ID
}
};
QB.init(token, false, false, QBConfig);
QB.service.getSession().application_id = your_app_id; // probably still need this too
Теперь попробуйте это (при условии, что вы используете оригинальный JS из примера):
function createSession() {
//QB.createSession(caller, function(err, res) {
//if (res) {
connectChat();
// }
//});
}
Вы правы с надстройкой PHP. Это может помочь вам защитить ваши учетные данные QB.
Другим решением является создание собственного сценария, который будет создавать ваши учетные данные,
что-то вроде логики запутывания. А затем сверните этот скрипт, чтобы скрыть все логические детали.
Во всяком случае, если вы решили использовать QB.init ( «маркер») тогда вам не нужно использовать QB.createSession совсем. QB.init ( «маркер») используется для обхода QB.createSession вызов.
Выпуск Javascript SDK 1.17.1
http://quickblox.com/developers/Javascript#Framework_changelog
Теперь вы можете инициализировать SDK с помощью токена сеанса и идентификатора приложения:
QB.init('1b785b603a9ae88d9dfbd1fc0cca0335086927f1', 3451);