Аутентифицировать пользователя через ссылку по электронной почте - PullRequest
0 голосов
/ 18 июля 2011

Я довольно новичок в аутентификации пользователей, но уже встроил некоторые стандартные процессы аутентификации пользователей в PHP.Чтобы добраться до сути, мне было поручено создать систему, в которую мы могли бы рассылать пользователям массовую рассылку по электронной почте, содержащую ссылку, по которой пользователь может перейти и напрямую войти в систему.

Я, вероятно, буду строить это, используя codeigniter.Если бы кто-нибудь мог дать какое-то руководство по процедуре, которой нужно следовать, или по некоторым учебникам по этому вопросу, это было бы чрезвычайно полезноПримечание: если они не специфичны для codeigniter, это вполне нормально.

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Я работал над этим раньше! У меня была таблица членов со следующими полями:

  `username` varchar(20) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `birthday` int(11) NOT NULL,
  `status` varchar(20) NOT NULL,
  `regDate` int(11) NOT NULL,
  `lastLogin` int(11) NOT NULL,
  PRIMARY KEY (`username`)

когда клиенты пытаются зарегистрироваться, вы должны указать их username, password, email, firstname, lastname, birthday затем вставьте запись в таблицу!, но установите статус 'pending' и отправьте электронное письмо с хэшированным именем пользователя на почту, содержащую URL-адрес, подобный этому http://www.mysite.com/signup.php?id=XXXXXXXXXXXXXXXX(hashed username)

Вы должны запретить вход в систему пользователям, чей статус «penidng»

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

0 голосов
/ 18 июля 2011

Самый простой способ сделать это - сгенерировать хеш на основе имени пользователя и некоторой соли, а затем поместить ссылку в электронное письмо, например, http://some.url/loggedin.php?email=<email>&hash=<hash>, чтобы электронное письмо можно было использовать для поиска записи. в БД легко и можно сравнить хэш.

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...