У меня есть приложение «Угловое приложение» как интерфейсный клиент и API-интерфейс Rails. Я хотел бы получить доступ к API Asana и хотел бы авторизовать его через приложение Angular, поэтому я следую их процессу OAuth под названием Implicit Grant Flow
.Могу ли я использовать Asana access_token в бэкэнд?
После авторизации я получаю access_token
, но при попытке использовать этот код на Postman (чтобы проверить API-вызов, который я реализую на внутреннем сервере), я получаю 401, не авторизированный код.
Есть ли способ, которым я могу заставить пользователя авторизовать через Angular, а затем обменивать этот access_token на постоянный токен/код для последующих вызовов на бэкэнд?
Если нет, мне нужно, чтобы пользователь мог авторизовать это каждый раз, когда мне нужно получить доступ к API?
EDIT
Вот скриншот из моих попыток использовать access_token
с Почтальон:
NOTE Я попытался выше на Почтальон минут после того, как я уполномочил приложение, поэтому я бы предположил, что токен будет действительным.
Я предполагаю, что есть две проблемы: 1) у меня что-то не так, поэтому ошибка на Postman и 2) в любом случае, я хочу получить постоянный токен, чтобы его можно было использовать повторно (обновляя его при необходимости). Если я правильно понял, я не могу получить «Authorization Code Grant», если я не выполняю аутентификацию на бэкэнд, поэтому я надеялся, что будет метод, который позволит мне обменять «access_token» на постоянный? – WagnerMatosUK
Во-первых, проблема с вашим запросом Postman: Asana берет 'Authorization: Bearer somecode' как заголовок, а не параметр запроса. Если вы хотите передать токен доступа в качестве параметра запроса, вы можете передать его в параметре 'access_token' (например,' https: //app.asana.com/...? Access_token = somecode'). Я обсужу 2) в отдельном комментарии. –
Невозможно обменять токены доступа для токенов обновления, поскольку токены доступа предназначены для менее надежных учетных данных, чем токены обновления. Я также должен добавить, что последующие переадресации на неявную конечную точку предоставления, как только пользователь разрешил ваше приложение, не должны требовать от пользователя повторного щелчка. Это правильный способ обработки auth на клиенте: вы не можете использовать токены обновления без вашего секретного ключа API Asana, чего вы не хотите на своем клиенте. Если вам нужны долгоживущие токены на сервере, вы должны использовать грант кода авторизации на бэкэнд. –