Вы можете использовать OpenID очень легко на самом деле. Пока вы отключаете данные учетной записи / профиля от фактического механизма входа в систему, вы должны иметь техническую возможность использовать один из них или без проблем. Затем вы можете сохранить таблицу логинов, в которой могут храниться имя пользователя и (зашифрованный) пароль для тех пользователей, которые предпочитают не использовать схему OpenID. Затем сохраните свои данные для входа (когда пользователь последний раз входил в систему и т. Д.) В таблице «Учетные записи», чтобы пользователи могли использовать вашу локальную систему входа в систему или различные поставщики входа в систему в стиле API Open ID. Затем вы можете создать различные классы для обработки деталей подключения при входе через локальную систему, входе в систему через Gmail, входе через Open ID и т. Д. Затем все эти классы должны соответствовать одному и тому же интерфейсу. Затем создайте фабрику, которая обрабатывает детали определения того, какой класс использовать для входа в конкретную учетную запись, следя за тем, какой метод они предпочитают на уровне учетных записей.