Как сделать регистрацию сайта в 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 дн.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы