@gogolang

Страница 707 из 1630
Anatoliy
15.12.2017
18:19:38
5 минут на access и месяц на рефреш

в итоге раз в 5 минут мы делаем обращение к базу и пересобираем пару токенов, но если запросов тысячи в секунду - то мы уже хорошо так времени экономим

но все же не понятно где их хранить, я про то что нормально ли оба токена хранить в куках

Alexander
15.12.2017
18:22:00
ну зависит от того, что на фронте. я хз, где сейчас новомодные js фреймворки данные хранят ? там же есть теперь "локальный сторедж", такая сущность?

Google
Alexander
15.12.2017
18:22:17
я бы слал рефреш-токен не в каждом запросе, а только на обновление экссесс-токена

ну и хранить на клиенте так, как умеешь

Sergey
15.12.2017
18:23:39
Почитайте про oauth (чтобы понять про refresh и access токены) Но вам тем не менее скорее всего не это нужно

Anatoliy
15.12.2017
18:23:52
я бы слал рефреш-токен не в каждом запросе, а только на обновление экссесс-токена
вот я бы тоже, но тогда на клиенте надо это дело проверять, а я думал просто игнорить на сервере до поры до времени приходящий рефреш и если что его просто использовать для новой генерации Access токена

мне просто нужна нормально работающая аутентификация на микросервисах

Sergey
15.12.2017
18:24:50
Суть в том что рефреш служит только для обновления токена доступа и его обновлять не надо

Anatoliy
15.12.2017
18:25:39
То что он служит только для обновления access - я согласен. Но вот то что его самого не надо обновлять - под вопросом... https://habrahabr.ru/company/Voximplant/blog/323160/

Sergey
15.12.2017
18:27:42
Честно, лень читать По факту в большинстве систем рефреш не обновляют ибо это излишне

Anatoliy
15.12.2017
18:27:58
Просто надо для себя решить может ли пользователь иметь несколько refresh токенов. Если может - тогда возникает веселая штука с логином на нескольких устройствах одновременно и надо придумывать способ как можно определить что пользователь может залогиниться и отрубить другие рефреш токены. Впрочем решается тоже просто - нужная страница доступна только первому access токену который мы получаем вместе с рефреш сразу после ввода логина

Ладно, в любом случае спасибо за беседу, было интересно)

Sergey
15.12.2017
18:29:23
Рефреш нужен один и он не используется для доступа совсем

Для доступа используется access token, вы не сможете его получить без рефреш токена но именно он используется для доступа к ресурсам

Google
Sergey
15.12.2017
18:31:34
Access токенов может быть более одного

Anatoliy
15.12.2017
20:54:09
Так я и не спорю что для доступа только access используется.

А из тех кто macaron пользует может кто пояснить одну вещь?) Есть вот такое: type TokenHandler struct { SecretKey []byte DBConn *sql.DB } ... handlerStruct := &controller.TokenHandler{ SecretKey: []byte(KEY_SECRET), DBConn: db, } ... m.Post("/", binding.Json(controller.User{}), handlerStruct.CreateUser) ... func (h *TokenHandler) CreateUser(c *macaron.Context) { ... Как мне в сам CreateUser передать полученного пользователя?

По примерам посмотрел - но там именно обработка, а мне то дальше надо передать...

Андрюха (Ren)
15.12.2017
23:10:31
Есть кто с новосибирска? С утра в запой на 1-2 дня.

whats
15.12.2017
23:29:30
кто шарит в nginx?

Egor
15.12.2017
23:32:54
whats
15.12.2017
23:33:02
а где он?

Egor
15.12.2017
23:34:20
Последний раз слышал на high load конфе в этом году



No
16.12.2017
07:12:12
Можно в консоли после того как вывели в консоль текст fmt.Println('text'); изменить/заменить выведенное слово ?

Andrew
16.12.2017
07:38:38
Надеюсь с направлением слеша не ошибся

Только fmt.Print заменяй, т.к. Println новую строку создал, назад не вернуться

No
16.12.2017
07:42:36
в смысле так ? fmt.Print("Text #1") fmt.Printf("Замена на текст 2")

Dima
16.12.2017
07:48:27
fmt.Print("Text #1") fmt.Printf("\rЗамена на текст 2")

No
16.12.2017
07:50:48
Лайк...))) Расширю вопрос, если строка к примеру "Вас приветствует Дима" и только заменять Диму заменять на Настю, Петю, Васю ?

Dima
16.12.2017
07:55:25
func main() { s := []string{"Петя", "Вася", "Катя"} for _, v := range s { fmt.Printf("\rВас приветствует %s", v) time.Sleep(time.Second) } }

No
16.12.2017
07:58:14
Спасибо, я понял как это делают, предпологал можно что-то типо меток ставить %v таких, и их изменять без циклов.

Google
ASergey
16.12.2017
08:24:01
Есть массив структура которая возвращается одной sdk либой, в каждом элементе массива присутствует очень много полей, с каких мне надо только два, как правильно выбрать эти поля и загнать в аналогичную структурку чтоб отобразить потом? Вижу только вариантом перебора через for, но может есть другие пути?

ASergey
16.12.2017
08:32:29
И еще вопрос, в мире ноды на проде я держал процесс с помощью pm2, как это правильно делать в мире го?)

Andrew
16.12.2017
08:45:49
ASergey
16.12.2017
08:47:03
Не так сказал, как правильно держать скомпиленный бинарник в запущенном состоянии и в случае краша перезапускать

Т.е неубиваемый пррцесс

Andrew
16.12.2017
08:47:34
Эээ, ну у меня systemd перезапускает сервисы

А сейчас же мода всё в докер пихать, там хз чо

ASergey
16.12.2017
08:51:08
Да я пока не вижу смысла в докер

Daniel
16.12.2017
09:00:20
А он есть

Zloy Dobriy
16.12.2017
09:21:36
А ответ на твой вопрос, нет. Пм2 пусть отстается в том миру где его сделали.

Для процсесс менеджмента своего бинаря используй нативные средства своей ос

ASergey
16.12.2017
09:22:35
Ok ok)

Привычка же

Alexander
16.12.2017
09:57:54
https://go-macaron.com/docs/middlewares/binding

????

Admin
ERROR: S client not available

Google
Anatoliy
16.12.2017
10:03:05
????
читал, смотрел. но там идет простая функция: m.Post("/", binding.MultipartForm(UploadForm{}), uploadHandler(uf UploadForm) string { у меня же там идет вот такое. handlerStruct := &controller.TokenHandler{ SecretKey: []byte(KEY_SECRET), DBConn: db, } m.Post("/", binding.Json(controller.User{}), handlerStruct.CreateUser) func (h *TokenHandler) CreateUser(c *macaron.Context) { и как отдать кроме контекста в функцию еще и самого пользователя - я пока тупо не понимаю. видимо что-то упускаю(

Alexander
16.12.2017
10:09:22
https://github.com/james2doyle/macaron-example/blob/master/main.go

там пример есть

m.Post("/contact/submit", binding.Bind(ContactForm{}), mySubmitHandler)

func mySubmitHandler(ctx *macaron.Context, contact ContactForm) {

Anatoliy
16.12.2017
10:12:55
эм.. т.е. вот так просто? func (h *TokenHandler) CreateUser(c *macaron.Context, user User) { ? и не надо ничего дописывать в m.Post("/", binding.Json(controller.User{}), handlerStruct.CreateUser) ?

Мда... действительно туплю получается(

Alexander
16.12.2017
10:13:22
я макароном не пользовался я не знаю)

написано, что д

Андрей
16.12.2017
11:47:39
доброго времени суток, народ подскажите чтонить интересное библиотечку для console.ui надо под хостинг несколько задач автоматизировать, хотелось бы удобство использования чтоб было

Андрей
16.12.2017
11:50:57
а как с интерактивностью?

у нее

мне надо наклепать текстовую менюшку для быстрого развертывания нескольких конфигов... в виде текстового и списка и интерактивного перехода по нему

У себя в закладках нашёл вот это: https://github.com/marcusolsson/tui-go
все, нашел то , что надо тут, спасибо, выручил

MaXG
16.12.2017
13:03:17
Всем вечера

Не подскажите дистрибьютив Линукс, чтобы минимальный и только для запуска golang приложения под 32 бита?

Roman
16.12.2017
13:05:40
Alpine

Я не уверен на счет 32 бит правда

Есть вроде поддержка 32

Google
Roman
16.12.2017
13:07:15
https://alpinelinux.org/downloads/

MaXG
16.12.2017
13:07:49
Таки есть

Vasily Romanov
16.12.2017
13:08:20
из нюансов alpine - там с -race не сбирается

вдруг это тайное знание пригодится

MaXG
16.12.2017
13:10:15
из нюансов alpine - там с -race не сбирается
Это что, и можно ли подробностей?

Vasily Romanov
16.12.2017
13:11:34
это рейс-детектор, опция при компиляции и тестирования он требует там gcc и ещё какого-то плюсового кода если это не используется - можно забыть

Roman
16.12.2017
13:12:20
В общем для прода норм

Страница 707 из 1630