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

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

Здравствуйте, я знаю что регистрация в сайте бывает 2 способа - через куки и сессии и
мне надо сделать регистрацию через апи - vk, fb или другого сайта не важно какой апи,
мне хотелось узнать как работает регистрация через апи, в обычном в броузере хранится логин и пароль в md5
а в апи как я знаю token ключ, и не могу понять как все этот алгоритм работает. я знаю как получить токен ключ, но не могу сделать регистрацию потому что поняти не имею как это работает. пожалуйста если у кого есть ссылка на такую тему - скиньте, или пишите решение, мне нужны общие понятие о регистрации через токен, а не получение токена. всем спс
  • Вопрос задан
  • 856 просмотров
Подписаться 4 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
borisdenis
@borisdenis
Ленив и вреден...
Процитирую ответ 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 дн.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽