История изменений
Исправление KivApple, (текущая версия) :
Что брать за основу username при регистрации?
Что-то вообще не связанное с авторизацией. Можешь, например, UUID генерировать (автоинкрементируемые id наружу выставлять плохо - кто-нибудь может начать их перебирать и вытащить инфу про всех пользователей, использовать их внутри бекэнда норм).
А для авторизации в таблицу юзеров добавить пару колонок - id способа авторизации (ну там phone, google, facebook, vk и т. д.) и уже специфичный для способа авторизации id пользователя (как с ним работать будет решать конкретная реализация механизма авторизации, выбранная по id способа авторизации).
Это если один юзер может иметь только один способ авторизации. Если хочется, чтобы было несколько способов, то тут только делать отдельную таблицу инфы про авторизацию связанную с таблицей юзеров отношением многие к одному. Например, там может быть три колонки - id юзера, id способа авторизации, произвольные данные авторизации (строка).
Делать по отдельной таблице на каждый способ авторизации не советую, потому что так придётся менять схему БД при добавлении каждого нового способа авторизации.
Исправление KivApple, :
Что брать за основу username при регистрации?
Что-то вообще не связанное с авторизацией. Можешь, например, UUID генерировать (автоинкрементируемые id наружу выставлять плохо - кто-нибудь может начать их перебирать и вытащить инфу про всех пользователей).
А для авторизации в таблицу юзеров добавить пару колонок - id способа авторизации (ну там phone, google, facebook, vk и т. д.) и уже специфичный для способа авторизации id пользователя (как с ним работать будет решать конкретная реализация механизма авторизации, выбранная по id способа авторизации).
Это если один юзер может иметь только один способ авторизации. Если хочется, чтобы было несколько способов, то тут только делать отдельную таблицу инфы про авторизацию связанную с таблицей юзеров отношением многие к одному. Например, там может быть три колонки - id юзера, id способа авторизации, произвольные данные авторизации (строка).
Делать по отдельной таблице на каждый способ авторизации не советую, потому что так придётся менять схему БД при добавлении каждого нового способа авторизации.
Исправление KivApple, :
Что брать за основу username при регистрации?
Что-то вообще не связанное с авторизацией. Можешь, например, UUID генерировать (автоинкрементируемые id наружу выставлять плохо - кто-нибудь может начать их перебирать и вытащить инфу про всех пользователей).
А для авторизации в таблицу юзеров добавить пару колонок - id способа авторизации (ну там phone, google, facebook, vk и т. д.) и уже специфичный для способа авторизации id пользователя (как с ним работать будет решать конкретная реализация механизма авторизации, выбранная по id способа авторизации).
Это если один юзер может иметь только один способ авторизации. Если хочется, чтобы было несколько способов, то тут только делать отдельную таблицу инфы про авторизацию связанную с таблицей юзеров отношением многие к одному. Например, там может быть три колонки - id юзера, id способа авторизации, произвольные данные авторизации (строка).
Исходная версия KivApple, :
Что брать за основу username при регистрации?
Что-то вообще не связанное с авторизацией. Можешь, например, UUID генерировать (автоинкрементируемые id наружу выставлять плохо - кто-нибудь может начать их перебирать и вытащить инфу про всех пользователей).
А для авторизации в таблицу юзеров добавить пару колонок - id способа авторизации (ну там phone, google, facebook, vk и т. д.) и уже специфичный для способа авторизации id пользователя (как с ним работать будет решать конкретная реализация механизма авторизации, выбранная по id способа авторизации).