[JS] Курсов проект 1. Web Crypto Chat


6
Колеги дали някой от вас успява да се свърже с сървъра без да му връща някаква грешка.. Ужасно много се чудя дали моята заявка е грешна защото ми излиза грешка 400 (bad request)... Макар че и през Fiddler излизат грешки... В сървъра ли е проблема или в мен ? ако някой е успял да се свърже успешно с резултат 200 моля да сподели тук как е успял или поне че е успял :D

в Уеб дизайн и UI технологии от Цвятко Цветков (0 точки)


Отговори



0
Не! Всички сървиси които дадоха(проекти и лекции) - постоянно крашват.

от hard.dido2 (44 точки)


0
Аз лично вчера през Fiddler се свързах успешно с другите 2 проекта на сървърите... (резултат 200 ;) )

от Цвятко Цветков (0 точки)


0
Получил ли си емейл с проекта?
Аз не съм.
Ако не си вероятно, не всичко е готово и работещо, както трябва, все още.

от mayiask (0 точки)


0
Доколкото знам, все още няма човек, който да е получил имейл във връзка с проектите. Иначе щеше да се чуе, тъй като от доста време го коментираме.

от georgi.s.yankov (6219 точки)

0
Мерси, за отговора :)
Но въпроса беше по-скоро в контекста "не сме получили емейли, следователно е голяма вероятноста да не е готово всичко, все още, затова почакай" :)

от mayiask (0 точки)


3

За който е стигнал до тази част, описанието на сервиза Получаване на съобщения от сървъра.Методът за комуникация е GET а не POST

също така към Url адреса се добавя сесииното ID на потребителя, а не се праща като масив към сървъра.

 

 


от Mihail_Petrov (2718 точки)


0
Тук има описани актуалните сървиси http://cryptochat.apphb.com/CryptoChatService.svc/help

от pamu (0 точки)

0
много мерси Мишо! часове се измъчих с този сървиз докато не разбрах от коментара ти, че в заданието е сбъркан!@?$!!!

от mvgmvg (296 точки)


0
Лично при мен каквото и да пратя е грешка, а когато изпратя заявка към сървиса от Fiddler са ми много странни грешките от рода на 411 което дори не е описано какво е.

от ventsi34 (55 точки)


0
При мен GET заявките работят, но като направя POST и постоянно ми връща 400. Имам чувстото, че греша, но незнам къде. В линка е функцията ми със заявка към /register. Ще съм ви много благодарен, ако му хвърлите един поглед.
http://pastebin.com/nr2rcHzx

от pamu (0 точки)


0
SHA библиотеката не връща чист стринг а обект, трябва да го стрингосаш тоест добави просто едно hash.toString() в обекта
var body = { username: name, authCode: hash.toString() };

от Mihail_Petrov (2718 точки)

0
Превръщането към стринг го правя с ред 12: hash = hash.toString(CryptoJS.enc.Hex);

от pamu (0 точки)



2

Колеги правя JSON обект който според описаните правила трябва да е валиден, но пак ми връща грешка 400 bad request . Та моля някой да даде пример с JSON обект който ако го пратя сега на момента да стане и да ми върне резултат 200 защото дори този в обясненията не става ... не може да имам грешка 3 дена цикля .... направо цялата пост заявка даже да прати ...


от Цвятко Цветков (0 точки)


0
Ето ти премерен код
$('[name="userLogin"]').on('submit',function(){ var username = $('[name="userLoginName"]').val(); var password = $('[name="userLoginPass"]').val(); var hash = CryptoJS.SHA1(username + password);
// create new user object var userReg = { "username" : username, "authCode" : hash.toString() }
$.ajax({ url : "http://cryptochat.apphb.com/CryptoChatService.svc/login", type : "POST", contentType: "application/json", dataType : "json", data : JSON.stringify(userReg) }).done(function(data){ // On sucsses console.log(data) });
return false; });

от Mihail_Petrov (2718 точки)

0
Като си тествам "register" заявката и на мен ми връща "400 bad request". Това е много странно.
@Михаил Петров - тествах и този код, който сподели, като го промених към "register" заявка, но пак не работи. Къде може да е причината?

от georgi.s.yankov (6219 точки)



0

Колеги виждам, че и вие също използвате готовата библиотека за Криптиране

CryptoJS. Има ли някакъв по-специален начин на конфигуриране, щото при мен не иска да работи. Взел съм само файла sha1.js. Изписва ми:

CryptoJS is not defined!

С тая постоянна грешка не мога да си проверя дали изобщо работи заявката :@ !

ето и кода: 

 

function regUser() {
    var username = $('.tb-username').val();
    var password = $('.tb-password').val();
    var regInfo = username + password;
    var hash = cryptoJS.SHA1(regInfo);
 
    var newUser = {
        username: username,
        authCode: hash.toString()
    }
 
    post(root + "register", newUser, userRegistered, regError);
}

от CaptCortez (1242 точки)


0
оправих го, но нещо ми излиза грешка при заявката пък сега :( Много странно :(

от CaptCortez (1242 точки)

0
Каква грешка ти излиза?

от georgi.s.yankov (6219 точки)



1
Здравейте, бях публикувала въпрос, но преповтори вече дискутирани теми и го закрих. Успях да се свържа със сървъра с помощта на написания от Михаил Петров код, но сега се чудя как се генерира sessionID.
Къде мога да намеря нещо повече за цитираното в проектите sessionID?
Има ли допълнителни към условията за проектите материали?
Ще има ли Уъркшопи за проектите?
Склонен ли е някой, който би могъл да го направи този сървър за локална употреба да го сподели?

от svetlaz (269 точки)


0
Между другото и аз се чудех по този въпрос и все си мисля, че тук са ни оставили да развихрим собственото си въображение :) Да направим sessionID. Може и да не съм прав, ако някой е разбрал точно, може да сподели :)

от CaptCortez (1242 точки)

0
Ами не става въпрос за нашето въображение май защото когато се регистрирах по-рано днес в в конзолата получих това: Object { sessionID=
"1186ibAiYmBcHRjMCnBHtsOHUyOaruXiYbDNcEdSffCPopLcfV"
} и когато го тествах с .../list-users/sessionID във Fiddler получих 200. След известно време вече беше 403. Но все още не ми е ясно как се генерира.

от svetlaz (269 точки)



1

Относно Cripto-chat проекта : Как да получим известие за покана като нямаме УРЛ към което да питаме дали дадения user има някакви покани ? или нещо аз пропускам ?


от Цвятко Цветков (0 точки)


0
Просто трябва явно да чета :D

от Цвятко Цветков (0 точки)


0

Успя ли някой да направи правилно актуализиране на списъка с user-и при logout? Понеже не знам, при мене ли е грешка, или във сървисите? Имам абсолютно същи кодове при 2-та варианта на msg от сървъра, и при login работи без проблем, но при logout - не. Самото logout ми работи - изпраща ми съобщение за logout на user-a до останалите user-и, но в списъка продължава да фигурира logout-натия user (чак до изтичане на 5-те минути - чак тогава се маха от списъка)

if (msgtype == "MSG_USER_ONLINE") {
    $("#myConsole").append(data.username, " is online<br/>");
    performGetRequest(
        serviceRootUrl + "list-users/" + user.sessionID,
        onListUsersSuccess,
        onListUsersError
    )
}
else if (msgtype == "MSG_USER_OFFLINE") {
    $("#myConsole").append(data.username, " is offline<br/>");
    performGetRequest(
        serviceRootUrl + "list-users/" + user.sessionID,
        onListUsersSuccess,
        onListUsersError
    )
}


от mvgmvg (296 точки)


0
Според мен това е бъг в сървисите, тъй като и при мен са по същия начин нещата, но нека и други колеги да кажат.

от georgi.s.yankov (6219 точки)

0
Здравейте колеги, Стигнах до изпращане на покана, въпреки че userlist-a ми не се ъпдейтва, но предполагам, че греша нещо в setInterval функцията... Можете ли да ми ударите едно рамо с пращането на покана?! Първо да попитам, как въвеждате тайния ключ? Това някакъв инпут или prompt ли трябва да бъде? После не ми е ясно, ние ли трябва да си измислим алгоритъм за създаване на случайно число R? var k = prompt("Enter a key", "enter a secret key!"); var minVal = 0; var maxVal = 999999999; function randomXToY(minVal, maxVal) { var randVal = minVal + (Math.random() * (maxVal - minVal)); return Math.round(randVal); Нещо подобно дали е приемливо? И накрая да попитам след като инклуднете АЕС, challenge = AES(R, K) , така ли се криптира? Не ми е никак ясно после, получателя как ще декриптира произволното число и ключ. Поздрави, Peppino

от peppino (65 точки)