Авторизация в API для клиентского приложения (вариант Б) Есть решение

-2

Выдержка из документации (https://developers.webasyst.ru...):

Б. Клиентские приложения Перенаправлять пользователей для подтверждения прав доступа на http://ACCOUNT_URL/api.php/aut... Если пользователь подтверждает доступ, перенаправлять обратно на REDIRECT_URL#access_token=ACCESS_TOKEN в противном случае на REDIRECT_URL#error=access_denied

Почему при авторизации клиентского приложения Webasyst перенаправляет на 

REDIRECT_URL#access_token=...

а не на 

REDIRECT_URL?access_token=...

И это не только в документации опечатка, по факту так и происходит, вместо знака "?" идет знак "#".

Каким образом до серверного кода, который расположен по адресу REDIRECT_URL, дойдет значение параметра access_token? Все нормальные браузеры и web kit фреймворки при редиректе отсекут в УРЛ решетку (#) и все, что есть за ней и на сервер отправят только REDIRECT_URL.

1 комментарий

  • +2

    Потому что вы используете клиентскую модель получения токена авторизации. Почитайте спецификацию OAuth 2.0.

    Если Вам требуется использование токена на серверной стороне — используйте схему для серверных приложений:

    1. Получайте код доступа, через GET параметр (на своём REDIRECT_URL).
    2. Выполняйте POST запрос до сервера, выпускающий токен (ACCOUNT_URL) и получайте его в одном из форматов: json/xml.

    Добавить комментарий

    Чтобы добавить комментарий, зарегистрируйтесь или войдите