Как сделать регистрацию сайта в php через api?

Здравствуйте, я знаю что регистрация в сайте бывает 2 способа - через куки и сессии и
мне надо сделать регистрацию через апи - vk, fb или другого сайта не важно какой апи,
мне хотелось узнать как работает регистрация через апи, в обычном в броузере хранится логин и пароль в md5
а в апи как я знаю token ключ, и не могу понять как все этот алгоритм работает. я знаю как получить токен ключ, но не могу сделать регистрацию потому что поняти не имею как это работает. пожалуйста если у кого есть ссылка на такую тему - скиньте, или пишите решение, мне нужны общие понятие о регистрации через токен, а не получение токена. всем спс
  • Вопрос задан
  • 842 просмотра
Решения вопроса 1
Процитирую ответ Anton B из вопроса Как использовать токены для аутентификации в API?

1. Для авторизации пользователь вводит логинпароль, устройство отправляет их по https на account/auth
2. account/auth выдает token (token_id:token_val) и secret
3. все дальнейшие запросы устройство отправляет по http указывая token и подписывая запросы с помощью secret

Как работает.

Сервер получает запрос, видит что пришел token, разбивает его через двоеточие на input_id и input_val. Выбирает из базы токен с пришедшим input_id, получает из базы значение token_val и secret. Сравнивает input_val и token_val. Если в базе нашелся токен с нужным id и значения val равны, пришло время проверить достоверность запроса.

Клиент помимо токена передал sign (подпись), которую сформировал так (например) secret+api_path+query_param. На стороне сервера вам известно api_path и api_param, а secret выбрали из базы. Хешировать подпись принято через hmac().

Помимо токена и подписи можно передавать time и так же класть его в sign, и на стороне сервера отсекать запросы запросы которым больше 60 сек.

Таким образом.

Если кто то слушает ваш канал, он не сможет подделывать запросы (а значит компроментировать), и из-за проверки времени жизни запроса не сможет вечно получать данные по однажды перехваченного запроса.

А в базе токены можете хранить пока клиент сам не запросит их уничтожения и сохранить время последного обращения через токен, и удалять токены которые не использовались более 60 дн.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽