Как на сайте получить идентификатор ОС или устройства?
Я хочу сделать двухуровневую авторизацию (первичную и основную).
Основная - самая стандартная, в которой вводится и подтверждается эл.почта или номер телефона (после подтверждения пользователь получает доступ к своему аккаунту).
Первичная - автоматическая авторизация пользователя (т.е. без каких-либо действий пользователя, например, ввода эл.почты), для того, чтобы дать возможность пользователю сразу использовать почти весь функционал (т.е., например, чтобы пользователь мог СРАЗУ задать вопрос или запустить рекламную компанию, а не авторизовываться сначала). После основной авторизации, данные из первичного аккаунта, привязанные к устройству, перейдут на основной, привязанные к эл.почте или телефону.
Чтобы создать первичный аккаунт (на основании первичной авторизации), мне необходимо получить неизменяемый идентификатор пользователя (чтобы к нему привязать аккаунт), я собираюсь привязывать к идентификатору ОС или устройства.
Может вы можете подсказать, как на сайте получить идентификатор ОС или устройства пользователя в Django? Можно это сделать без request?
Нет такого. Тема browser fingerprinting обширная, и сильно зависит от конкретного рассматриваемого браузера.
Просто пропиши пользователю самостоятельно сгенерированный айдишник куда сможешь (куки, local storage, все дела), и имей ввиду что снести его и получить новый достаточно просто.
Единственное решение - это аппаратный USB-ключ, и соответсвующее API/расширение в браузере. Но таким будут пользоваться разве что в интернет-банкинге.
Благодарю за ответ. Не был в курсе на счет темы browser fingerprinting, покопался, и нашел статьюhttps://habr.com/ru/company/oleg-bunin/blog/321294/ в которой представлены возможные решения вопроса, одно из них даже позволяет идентифицировать пользователя в режиме инкогнито. Не считаю, что это правильно, но все же, такой метод используют 6% самых популярных сайтов интернета (по приведенной в статье статистике).
Предлагаемые варианты коротко описываются в первой четверти статьи, если дадите по их поводу комментарий, буду признателен.