Я создаю инструмент командной строки, используя python, который взаимодействует с RESTful api. Для аутентификации API использует oauth2. Вместо запроса access_token каждый раз, когда пользователь запускает инструмент python. Могу ли я сохранить access_token каким-то образом, чтобы я мог использовать его до его срока службы? Если это так, то насколько это безопасно.Можно ли хранить токен аутентификации в отдельном файле?
ответ
Вы можете сохранить токен доступа в файле на рабочем столе своего пользователя.
Вы можете сделать это с помощью хранилища. Предполагая, что вы используете oauth2client
:
# Reading credentials
store = oauth2client.file.Storage(cred_path)
credentials = store.get()
# Writing credentials
creds = client.AccessTokenCredentials(access_token, user_agent)
creds.access_token = access_token
creds.refresh_token = refresh_token
creds.client_id = client_id
creds.client_secret = client_secret
# For some reason it does not save all the credentials,
# so write them to a json file manually instead
with open(credential_path, "w") as f:
f.write(creds.to_json)
С точки зрения безопасности, я бы не видеть большую угрозу здесь, поскольку эти маркеры доступа будет на рабочем столе пользователя. Если кто-то хочет получить свой токен доступа, им необходимо будет иметь доступ на чтение к этому файлу за этот временной интервал. Однако, если они уже могут это сделать, они, скорее всего, также смогут использовать ваш скрипт для отправки им копии токена доступа пользователя при каждом его аутентификации. Но возьми мое слово легко, поскольку я не профессионал в этой области. См. information security stack exchange.
post в обмене информации стеки безопасности действительно говорил об этом:
этих жетоны дают доступ к некоторой довольно конфиденциальной информации о пользователях.
Однако вопрос был адресован базе данных.
В заключение вы можете получить сохранить его в файле. (Но возьмите мое слово с солью)
Вы хотите сохранить его на сервисной стороне или на месте?
Поскольку ваш инструмент интерфейсов API RESTful, который является апатридом, что означает, что между различными запросами API не хранится никакой информации, вам фактически необходимо предоставить токен доступа каждый раз, когда ваш клиент обращается к любой из конечных точек REST. Возможно, мне не хватает некоторых деталей в вашем дизайне, но токены доступа должны использоваться только для авторизации, так как ваш пользователь уже прошел аутентификацию, если у него есть токен. Вот почему токены действительны только в течение определенного времени, обычно 1 час.
Таким образом, вам необходимо предоставить состояние либо с помощью файла cookie (веб-интерфейса), либо локального локального хранилища (это то, что вы имели в виду). Тем не менее, вы должны запускать весь поток oauth каждый раз, когда пользователь входит в систему к вашему клиенту (аутентификация пользователя и предоставление нового токена аутентификации), иначе вы не будете использовать преимущества oauth.
- 1. Cookies - хранить токен аутентификации
- 2. Хранить шаблон jsRender в отдельном файле js
- 3. хранить каждый класс в отдельном файле python
- 4. Можно ли хранить сообщения Dbgprint() в файле?
- 5. Можно ли определить содержимое каждой вкладки в отдельном файле XML?
- 6. Где хранить токен JWT?
- 7. Можно ли хранить объект в файле свойств в Java?
- 8. Как использовать и хранить токен от oauth2 для аутентификации
- 9. SharedPreferences в отдельном файле
- 10. Где хранить токен аутентификации другой системы в приложении ASP.NET
- 11. Можно ли хранить «многомерные» массивы в json-файле?
- 12. Преобразует ли сеанс аутентификации cookie в токен?
- 13. Лучший способ сохранить токен аутентификации?
- 14. Ansible vars_prompt в отдельном файле
- 15. Nodejs - Необходимо ли декодировать токен аутентификации?
- 16. Можно ли хранить итератор?
- 17. Можно ли обрабатывать запросы в отдельном потоке?
- 18. Выполнение команды в отдельном файле
- 19. AWS Отсутствует токен аутентификации
- 20. Можно ли отозвать токен с помощью Nancy.Authentication.Token?
- 21. Вручную установить токен аутентификации?
- 22. Как отменить токен аутентификации?
- 23. slf4j loging в отдельном файле
- 24. Могу ли я хранить инструкции SQL в отдельном файле в узле js?
- 25. Получить значения модели в отдельном файле Javascript
- 26. Можно ли хранить (хэшированные) пароли в cookie?
- 27. Можно ли определить, был ли макрос определен в отдельном файле c?
- 28. токен аутентификации и iphone
- 29. Определить токен аутентификации
- 30. Как добавить токен аутентификации?