Меня попросили выполнить аутентификацию без имен пользователей и паролей, каковы мои варианты?

#php #javascript #apache #authentication

#php #javascript #apache #аутентификация

Вопрос:

Меня попросили оставить пароли и имена пользователей в стороне, поскольку большинство посетителей сайта являются посетителями типа «стоп-покупка-возвращение через несколько месяцев», и мотивация была примерно такой: «они в любом случае забудут пароли и должны будут запросить новые».

Я подозреваю, что у меня нет реального способа сделать это, думая, что IP: s, вероятно, меняются, браузеры обновляются, файлы cookie очищаются и так далее.

Или у меня есть какие-либо варианты?

(не то, чтобы я искал код, а скорее концепции и псевдо, но язык в проекте — php / js в сочетании с сервером apache)

Комментарии:

1. Есть ли Facebook Connect или OpenID?

2. Предложите адрес электронной почты в качестве имени пользователя и будьте любезны с правилами паролей

3. Я решил попробовать решение для распознавания электронной почты в соответствии с ответом Джиши — спасибо за все интересные идеи.

Ответ №1:

Используйте OpenID.

Пусть Facebook, Google, WordPress или даже Stack Exchange обрабатывают аутентификацию за вас, и людям не придется запоминать другой пароль.


В качестве альтернативы:

Многие пользователи уже понимают процедуру «забыл пароль; проверьте мою электронную почту», так почему бы просто не сократить ее, попросив их ввести свой адрес электронной почты и отправить им URL-адрес для входа со случайно сгенерированным токеном для входа.

После того, как они вошли в систему, сохраняйте их вход в систему до тех пор, пока вы считаете безопасным.

Ответ №2:

В нашем решении для электронной коммерции мы делаем следующее:

Мы используем электронную почту в качестве уникального идентификатора.

Когда клиент совершает покупку, используя тот же адрес электронной почты, заказ будет прикреплен к его существующему пользователю. Однако вы не получаете никаких сведений об адресе или тому подобном, но должны ввести его вручную.

Клиент получит электронное письмо с сгенерированным паролем, если это первая покупка. Если это будет вторая покупка, им просто будет предложено войти в систему. Однако это можно объединить с URL-адресом и маркером входа. Аналогично, для входа на сайт вы можете просто попросить их ввести электронное письмо, чтобы получить токен URL-адреса для входа.

Объедините это с долгоживущим файлом cookie и / или хранилищем данных браузера, чтобы запомнить данные клиентов (адрес и тому подобное).

Другим вариантом было бы заставить их вводить что-то о себе, что они всегда будут знать, но другие не будут. Однако для этого трудно найти приемлемое на международном уровне решение.

Комментарии:

1. Очень интересные ответы в целом, но я склоняюсь к решению электронной почты, описанному здесь.

Ответ №3:

Вы могли бы использовать так называемые supercookies, которые являются автономным хранилищем на стороне клиента. Либо через автономное хранилище html5, либо через плагин, подобный flash, для восстановления удаленных файлов cookie. Хотя, эти файлы cookie, вероятно, будут запрещены в какой-то момент, поскольку они в основном скрыты для пользователя, и от них очень трудно избавиться. (Не рекомендую этот подход, просто говорю, что это возможно)

Ответ №4:

Учетные данные для аутентификации разбиваются на три варианта;

  • Что-то, что вы знаете — пароли
  • Что-то у вас есть — физические ключи, карты
  • Что-то вы — радужная оболочка, сетчатка и другие биометрические данные

Лучшее, что вы можете сделать, это использовать файлы cookie, я думаю. Или…Я думаю, вы могли бы попросить их загрузить файл и загрузить этот файл в качестве своих учетных данных для доступа — та же идея, что и файл cookie, но вряд ли он будет удален. Однако вам придется тщательно подумать о том, что поместить в файл — их идентификатора пользователя недостаточно, так как его можно легко взломать. Подойдет случайная длинная строка, которая сохраняется в базе данных в их учетной записи. Ничего, что можно было бы предсказать, и ничего, что можно было бы использовать для угадывания учетных данных другой учетной записи.

Ответ №5:

На ум приходит несколько вариантов:

  • Используйте постоянный файл cookie, но делайте это только в сочетании с SSL (поэтому его просто нельзя перехватить по проводам)

  • Другой вариант — OpenID, который вы используете здесь, поэтому пользователи могут использовать учетную запись, которую они часто используют для входа на ваш сайт.

Комментарии:

1. Файл cookie идентифицирует не пользователя, а браузер.

2. Правильно, но при отсутствии имени пользователя это все, что у вас есть

Ответ №6:

Мне кажется, что ваш единственный вариант — предоставить им файл cookie forever и надеяться, что он не будет удален между посещениями.

Вы можете прочитать о них здесь .