Я сталкивался с этой проблемой несколько лет назад, когда работал в компании, в которой было несколько онлайн-приложений, но требовался 1 вход для 1 человека, чтобы иметь доступ ко всем 3 веб-сайтам.
Решение состоит в том, чтобы создать «главную базу данных безопасности», которая содержит информацию, необходимую для успешного входа в систему. У вас будет пара таблиц в этой базе данных, в которой также определены права пользователя, когда пользователь входит в систему из приложения веб-почты или загрузки музыки, база данных безопасности проверяется на наличие действительных учетных данных, и вы можете сохранить вход в систему (и через несколько сайтов), передавая что-то вроде соленого хеша MD5, так что пользователь должен войти в систему только один раз, а при переадресации на следующий сайт автоматически войти в систему.
Затем вы можете расширить «пользовательскую таблицу», которая будет у вас в базе данных безопасности, с помощью соответствующей пользовательской таблицы в конкретной базе данных веб-сайта (которая не имеет автоматически увеличиваемого ключа UserID, но ссылается на ключ базы данных безопасности). ). Таким образом, в вашем музыкальном приложении вы можете хранить информацию, такую как «Списки воспроизведения» или другую информацию демографического типа, используемую только вашим музыкальным веб-сайтом, то же самое относится и к вашему веб-сайту электронной почты.
Объедините это с OpenID, и у вас будет очень мощная система для использования на всех ваших сайтах, требующая только одного входа.