Подскажите, как сделать единую авторизацию для 3х проектов.
3 разных домена. На одном сервере. Таблица users общая.
Поля таблицы users
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`email` VARCHAR(256) NOT NULL,
`password` VARCHAR(128) NOT NULL,
`active` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '1 - активна, 0 - неактивна',
`reg_date` DATETIME NOT NULL,
`last_activity` DATETIME NOT NULL,
`token_reg` VARCHAR(128) NOT NULL,
`token_auth` VARCHAR(128) NOT NULL,
`pass_renewal` VARCHAR(128) NOT NULL,
Авторизируюсь так
$result = mysqli_query($linkMain,$sql);
$user_bd = mysqli_fetch_array($result);
if (empty($user_bd['id'])) {
$error .= "Неверный E-mail/пароль.";
} elseif (empty($error)) {
$sqlActivity = "UPDATE `users` SET `last_activity`='$DateTimeLast' WHERE `id`=".$user_bd['id'];
mysqli_query($linkMain,$sqlActivity);
$remember_me = (isset($_POST['remember_me'])) ? true : false ;
if ($remember_me) {
$token_auth = uniqid().generate_random_str(23);
$sql = "UPDATE `users` SET `token_auth`='$token_auth' WHERE `id`=".$user_bd['id'];
mysqli_query($linkMain,$sql);
setcookie("token_auth", $token_auth, time()+60*60*24*30, '/');
}
$_SESSION['user_login'] = $email;
$_SESSION['user_id'] = $user_bd['id'];
$_SESSION['active_user'] = $user_bd['active'];
header("Location: /");
exit();
}
Я думал добавить в таблицу еще одно поле и при авторизации менять его например на 1 (по-умолчанию 0), а в случае logout делать UPDATE и присваивать значение 0, но возникли вопросы, как быть, если сессия закончиться по истечении времени..Много белых пятен, не понимаю, как грамотно это реализуется