@spbpython

Страница 355 из 785
Denis
04.04.2017
22:32:42
Я чуть из контекста выпал, сорри

Вообще есть другой вариант - брать ключи из энва

Google
Denis
04.04.2017
22:34:08
Тоже распространённая практика, так как ключи не будут в кодовой базе, приложение получить только в рантайме

Eugene
04.04.2017
22:34:46
Да, но допустим, я перезапустил сервис, ключи пропали. Что делать?

Denis
04.04.2017
22:35:46
Там логика в том, что ты хранишь переменные энва в файле на проде

Т е специально там создаёшь

Dmitry
04.04.2017
22:36:04
@iorlas ты ему сейчас голову заморочишь только.

Denis
04.04.2017
22:36:22
@iorlas ты ему сейчас голову заморочишь только.
Ну да, просто про вариант рассказываю )

Eugene
04.04.2017
22:36:32
Ну и какая тогда разница с ini файлом? Это то же самое. Я читаю ключи из файла и сразу его закрываю

Denis
04.04.2017
22:36:38
Вообще не парься, Жень, делай с ини, ну правда

Dmitry
04.04.2017
22:36:47
Ну это и понятно, храни где хочешь. Про redis почитаю, спасибо. Это нормальная практика?
тебе сейчас явно хватит. Потом можешь из интереса почитать чего они рекомендуют сами https://api.slack.com/docs/oauth-safety#safe_token_storage

Denis
04.04.2017
22:37:08
Не совсем, ини файл у тебя конфигурационный, храниться будет ещё и в репе

Eugene
04.04.2017
22:37:13
Я читал, там каких-то конкретных рекомендаций нет.

Denis
04.04.2017
22:37:21
А энвацронмент настраивается отдельно от приложения

Eugene
04.04.2017
22:37:25
Нет, в репе не хранится, это другой файл, просто формат удобный

Google
Denis
04.04.2017
22:38:10
А некоторые через env прямо в systemd прикидывают токены :D

Прокидывают

amureki
04.04.2017
22:38:28
os.getenv('mysecretkey') куда уж проще)

Denis
04.04.2017
22:38:35
Угу

Но реально, не стоит морочить голову

Дмитрий правильно подметил выше )

С ини проще

Я вообще юзаю конфигурационные объект: app.config.from_object('settings')

Eugene
04.04.2017
22:41:16
os.getenv('mysecretkey') куда уж проще)
Может я просто не понимаю, но кто должен положить это в env?

Denis
04.04.2017
22:41:22
Короче с планшета на битбакете не покопировать



Тип того

amureki
04.04.2017
22:41:39
Может я просто не понимаю, но кто должен положить это в env?
Тот же человек, что положит это в ини файл

Dmitry
04.04.2017
22:41:46
причём здесь конфигурация и среда? о_0 Речь о полученных токенах авторизации, это не конфигурационная информация

Denis
04.04.2017
22:41:54
Файл енва подгружается

А

Eugene
04.04.2017
22:42:19
Вот я получил токены, как я их смогу использовать, если перезапущу своё приложение?

amureki
04.04.2017
22:42:28
Я думал мы про ключи и секреты) времянку не надо, лол

Denis
04.04.2017
22:42:29
причём здесь конфигурация и среда? о_0 Речь о полученных токенах авторизации, это не конфигурационная информация
Возможно возникло недопонимание )) я подумал мы о токенах приложения говорим

Google
Eugene
04.04.2017
22:42:54
Это не времянка же

Dmitry
04.04.2017
22:43:03
а что это?

Denis
04.04.2017
22:43:20
Это не времянка же
Ключи экспайрятся

Рефреш токен не всегда дают

Dmitry
04.04.2017
22:43:31
> С OAuth разбирался пол дня и так и не придумал, как лучше и безопаснее всего хранить полученные токены

какие такие токены от oauth, но при этом не временные?

может ты про апи-кей какой-то говоришь всё же?

его да, фигани в конфиг, какой угодно

Eugene
04.04.2017
22:44:07
Погодите, вот пользователь установил к себе в slack моё приложение, я получил токены. Эти токены сколько живут? Пока пользователь не сделает revoke?

Dmitry
04.04.2017
22:44:49
да, это в редис.

Denis
04.04.2017
22:44:51
И требуется либо рефрешить

Dmitry
04.04.2017
22:45:00
как именно это всё у них работает - см. доку слака

Denis
04.04.2017
22:45:01
Либо просить пользователЯ ещё раз

Eugene
04.04.2017
22:45:26
как именно это всё у них работает - см. доку слака
У них такая дока, дофига воды и сложно понять общую картину

Denis
04.04.2017
22:46:16
>Authorization codes may only be exchanged once and expire 10 minutes after issuance.

Dmitry
04.04.2017
22:46:20
> Эти токены сколько живут? как правило вместе с токенами приходит и TTL на них

Denis
04.04.2017
22:46:49
Ай нет

Google
Eugene
04.04.2017
22:46:51
Это не коды авторизации, они не живут 10 минут.

Denis
04.04.2017
22:47:25
Please note that these access tokens do not expire.

Там пометк есть ))

Всё гуд

Eugene
04.04.2017
22:47:49
Да я говорю, они вечные, пока не сделаешь revoke

Denis
04.04.2017
22:47:50
Да, кек Дмитрий сказал, в редиску

Dmitry
04.04.2017
22:48:18
ты обмениваешь авторизационные коды (TTL 10 минут) на акцесс-токены (TTL бесконечный)

акцесс-токены кладёшь в редис

если попытался постучаться, а токен умер (юзер отозвал) просишь всё заново

https://api.slack.com/docs/oauth

Admin
ERROR: S client not available

Dmitry
04.04.2017
22:49:04
по-моему вполне внятно всё написано

Eugene
04.04.2017
22:49:20
Это я читал, да

Dmitry
04.04.2017
22:51:00
Вот я получил токены, как я их смогу использовать, если перезапущу своё приложение?
просто берёшь их из редиса, они оттуда не исчезают. Редис перезапускать не нужно. Если интересно подробней, то https://redis.io/topics/persistence

Eugene
04.04.2017
22:51:08
Но всё же, чисто практически, в чем разница между redis и файлом на диске?

Dmitry
04.04.2017
22:51:15
ну и в крайнем случае просто просишь их заново, как и в случае с revoke

Но всё же, чисто практически, в чем разница между redis и файлом на диске?
первое - бд, со всеми вытекающими. Чем бд отличается от файла на диске?

Eugene
04.04.2017
22:53:00
В общем, спасибо! Если что, я ещё поспрашиваю? :)

Dmitry
04.04.2017
22:54:19
ты всю ночь планируешь эту приблуду ковырять? =)

кстати, линтер не ругается на нарушение pep8? я про импорты внутри функции, да ещё и разбросанные по строчкам

Google
Dmitry
04.04.2017
23:01:06
Зачем так было сделано? о_0

Denis
04.04.2017
23:04:50
кстати, линтер не ругается на нарушение pep8? я про импорты внутри функции, да ещё и разбросанные по строчкам
Не ругается. Не помню чтобы в пепе было это запрещено, иногда это необходимость )

Если честно, не помню

Старый код

Возможно было связано с не инициализированным приложением на момент импорта

Или необходимостью не инициализировать модули до создания приложения

На вскидку не помню, я сегодня чуть овощ :(

Dmitry
04.04.2017
23:06:34
> иногда это необходимость _редко_ когда. При циклических импортах лучше зарефакторить. Но здесь же вообще сторонние пакеты > не помню чтобы в пепе было это запрещено https://www.python.org/dev/peps/pep-0008/ Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.

Dmitry
04.04.2017
23:07:56
повторюсь, на скриншоте импортятся сторонние модули )

скорми на досуге код проекта flake8, узнаешь кучу интересных штук наверняка

Denis
04.04.2017
23:08:16
Да я не про этот пример )

Дык скармливаю

Возможно в игнорах есть ворнинги и туда попало

Eugene
04.04.2017
23:08:49
ты всю ночь планируешь эту приблуду ковырять? =)
Да, наверное, почти всю ночь. Типа надо срочно. Это в нашей небольшой компании хотят показать некие наработки по интеллектуальному поиску некой инфы, оформленное в виде slack-приложения с красивыми графиками и т.п.

Denis
04.04.2017
23:08:55
Надо глянуть почему не ругнулся

Eugene
04.04.2017
23:09:19
А так как я ни разу не веб программист, мне всё это несколько напряжно

Eugene
04.04.2017
23:10:18
Есть парочка, но они на других проектах и я с ними не общаюсь, совсем другая команда в другом городе.

Зато это некий challenge :)

Dmitry
04.04.2017
23:10:53
ну, поспи хоть часа три, когда продуктивность упадёт

Страница 355 из 785