Сергей Протько: ключ можно располовинить: половину из письма - линк с GET-запросом (или PIN из SMS), половину - вернём с сервера при клике (или после ввода PIN в поле ввода). В итоге - две половины окажутся у клиента разными путями и затем захешировать и положить готовый ключ в LocalStorage для дальнейшего использования.
Или я не прав здесь?...
Валихан Ильясов: в коде сайта - не надо шифровать. шифруется средствами самого веб-сервера, выступающего в роли SSL-враппера для протокола HTTP. Итог - называется HTTPS.
Aves:
1. "Откуда знают?" - догадаться было, канешн, трудно))))
Зарегился и пришел тебе PIN по СМС или код в линке на почту (двух факторная аутентификация).
2. можно не хранить пароль!)) можно хранить хэш-связку hash(логин:пароль) - это уже кто как хочет))) (главное, при этом - не забыть юзеру дать задать себе какое-то имя: friendly-name, но можно и без этого, просто ID-шники выводить, но это зрительно - не удобно будет)
3. LOGIN: отправляем hash и random от клиента на сервер.
4. "Как находит сервер данные для ответа?": Выборка с сортировкой по увеличению прошедшего времени на основе выставленных SKEY_TIMESTAMP: берет из стека верхнюю запись, вычисляет хэш и сравнивает с присланным клиентским.
5. "Про ввод логина и пароля" - да, просто людям так проще. можно было бы вводить просто парный хеш (как я написал в п.2)
6. "По твоим словам отсылается на сервер только хэш." - читай в ответе внимательно: "2. Пересылаю на сервер: ab1e37ab50c61d8c80fb5cb4b1e3122f:RANDOM"
Aves:
1. Клиент и сервер - знают один и тот же skey.
2. Он привязывается к аккаунту в момент генерации на стороне сервера и его время формирования - также записывается.
3. Когда приходит на сервер hash от клиента, сервер знает уже: USER, PASSWORD, SKEY, SKEY_TIMESTAMP (юзера и пароль - лучше хранить в зашифрованном виде) и ему остаётся рассчитать серверный хеш (для проведения сравнения с клиентским), используя с RANDOM.
Сервер перебирает не все подряд аккаунты, чтобы посчитать хэш для проведения сравнения, а только за:
a) указанный максимально возможный интервал (5-10 сек)
б) в хронологическом порядке формирования SKEY, базируясь на SKEY_TIMESTAMP
В итоге - срабатывает всё мгновенно вне зависимости от кол-ва пользователей в системе.
Роман Краббз: "Вы зря тратите своё время." - Я дал посмотреть на это людям и пять-из-пяти сказали, что это - действительно удобно и быстро.
Пока что, я думаю, что не зря я трачу время. (как пойдёт дальше - не знаю, но пока это людям нужно...)
Aves: ок. предлагаю перейти к конструктивному диалогу. диаграмму состояний при обмене данными между сервером и клиентом в твоём понимании - в студию. Я посмотрю и мы поймём кто и где ошибся. Согласен?
Что-то похожее, но больший уклон всё же на общий внешний вид, близкий к конечному, с цветовым и малым оформительским представлением. Я, конечно, понимаю, что не 1-в-1 удастся сделать как и итоговая страница, но основные "штрихи" - чтобы мог заказчик передать уже дизайнеру для окончательной подготовки дизайн-шаблона под вёрстку.
Роман Краббз: поэтому и возник вопрос: закодить я могу, но что закодить - не особо понятно. Пока закодил то, что закодил. Вот спрашиваю помощи владеющих этой сферой (т.к. я не спец в дизайне.)
Или я не прав здесь?...