Задать вопрос

Как реализовать авторизацию с разных устройств?

Всем доброго времени суток.
Пишу api на php, нужна возможность авторизации с разных устройств одновременно. Соответственно, как это правильно делать?

Как обычно делается - создание хэша, его в базу, и раздаем устройствам - не очень безопасно, на мой взгляд.

Какие подходы есть, опишите, пожалуйста.
Спасибо за внимание.
  • Вопрос задан
  • 3315 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Есть некий клиентАйди clientId = который известен устройству которое подключается.
Используя этот clientId - устройство делает запрос на сервер получает асесТокен для этого устройства (accessToken ). Cледующий запрос отправляется уже с clientId +accessToken + логинпароль пользователя. Если все хорошо - то мы получаем accessToken пользователя.

На этом шаге мы уверны что устройство надежно и пользователь залогинен.(у нас есть accessToken для пользователя).

Можно отправить еще запрос с этом accessToken - проверить его валидность.
При чем каждый из этих запросов все еще можно подтверждать clientId (который известен изначально).

Так вот мы проверили accessToken - он валидный. И получили с сервера так называемый sessionToken.

и дальше мы можем общаться с сервером посредством этого sessionToken - прикрепляя его в заголовки.

Может что то напутал - время уже позднее... Но суть думаю понять можно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Я вот не понял: нужно несколько устройств "засунуть" в одну сессию параллельно в единицу времени или же просто дать возможность входа под одной учеткой с разных устройств?

В любом случае при API-реализации Вам нужно управлять созданием сессии вручную.

1. Если РАЗНЫЕ сессии и ОДНА учетка - используется UUID на сервере для создания ID-сессий.
2. Если нужна ЕДИНСТВЕННАЯ сессия для ОДНОЙ учетки для нескольких устройств - тогда храните единственный UUID в БД. (session_id(ID); вызывается до!!! session_start();)

Авторизация: CRAM-MD5
Можно еще и mirroring сделать при необходимости. ;)
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Авторизация != аутентификация . А какая разница с какого устройства вошел пользователь?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы