Во-первых, давайте определим «лучший» здесь.«Лучший» дизайн / поток / алгоритм / метод входа в систему для целей этого вопроса должен быть:
Простой .Я не думаю, что мне нужно объяснять, почему простая система лучше сложной.OAuth 2, например, на мой взгляд, очень сложная система.Он определяет, если я правильно помню, не менее девяти различных потоков для предоставления приложению доступа к данным человека.Я нахожу это излишним, но это не подлежит обсуждению здесь.
Независимость от языка .Пожалуйста, не отвечайте, давая реализацию.Я не хочу реализации.Я хочу дизайн (или несколько ...).Вы можете приводить примеры, но предлагаемое вами решение должно легко кодироваться на любом (читай: большинстве) языке, не требуя значительных обходных путей для функций, которых нет.
Secure .Дизайн должен охватывать наиболее распространенные проблемы безопасности в сети.XSS, CSRF, и т. Д. И т. Д. Я думаю, что хороший набор можно получить, перейдя в Coding Horror и в поиске «security» ...
Теперь длянекоторые мелкие детали:
JavaScript разрешен.Если дизайн может вернуться к средам, не относящимся к тексту, крутоНо это не обязательно.
Flash, Java-апплеты не допускаются.Это противоречит пункту, не зависящему от языка: если вашему дизайну требуется что-то, что доступно только через Flash или Java, это недостаток.
Хранение пароля .Существует целый класс проблем, связанных с хранением пароля.Я не хочу об этом слышать.
Передача пароля .Это важно .Передача пароля простым текстом - это просто зло.По SSL это может быть приемлемо, но если у вас может быть система (относительно) безопасная, не полагаясь на сквозное шифрование, это было бы здорово.
Учитывая всеДля этого предложите «лучший» дизайн пользователя / входа / выхода из системы / потока / алгоритма / техники, который, по вашему мнению, соответствует условиям, описанным выше.Или скажи мне, если думаешь, что это глупое поручение!;)