170 похожих чатов

Всем доброе утро! Подскажите вопрос все с той же проверки

токена в куках и в бд
Вот я записал в бд токен и в куку я тоже записал там 1==1 образно
Теперь проверка токена
func validateTokenCookie(w http.ResponseWriter, r *http.Request) bool {
// Получение токена из куки
cookie, err := r.Cookie("my_auth_token")
// Получение ключа для подписи токена
key := []byte("my_secret_key")
// Проверка подписи токена и извлечение его параметров
token, err := jwt.Parse(cookie.Value, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("unexpected signing method")
}

return key, nil
})
// Проверка параметров токена
if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
username, ok := claims["username"].(string)
password, ok := claims["password"].(string)
exp, ok := claims["exp"].(float64)
if !ok || !validateUserCredentials(username, password) {
return false
}
// Проверка времени действия токена
if time.Now().Unix() > int64(exp) {
return false
}
return true
} else {
return false
}
}

А вот теперь проверку нужно сделать в бд токен в куке == токен в бд ?

func validateUserCredentials(username, password string) bool {
// Проверка логина и пароля в вашей базе данных или в другом источнике
return username == "my_username" && password == "my_password"
}

Я вот не пойму мне получается известен username на момент проверки?
Все что я хочу чтобы у меня был username по которому я смогу пойти в базу и там посмотреть а есть такой пользователь
И почему то у меня в голове то что все записи надо выпарсить и только потом проверять?
Или в функции проверке мне нужно отправить запрос с паараметрами username и pass ?
А далее вернуть просто TRUE если такой пользователь нашелся ?

14 ответов

25 просмотров

JWT просто подписывает данные, которые в открытом виде в нем лежат) в данные можно положить userid и только по нему грузить пользователя из базы, дополнительной проверки токена не нужно, как и хранить его где-то. Хранить даже опасно, потому что токен может быть валидным JWT после добавления пары посторонних символов в него клиентом)

Vladimir- Автор вопроса
Alexander
JWT просто подписывает данные, которые в открытом ...

ну я уже положил в данные username pass data_now ну в бд же все равно что то нужно хранить или тут уже код про то что в бд не нужно хранить ? Ну а где хранить тогда тот iser id чтобы делать сравнение ?

Vladimir
ну я уже положил в данные username pass data_now ...

Айди в токене, больше в него пихать ничего не нужно. Вставь токен на jwt.io, убедишься, что все данные в нем видно. Это тупо base64

Vladimir- Автор вопроса
Alexander
Айди в токене, больше в него пихать ничего не нужн...

понял концепт положил пароль-засветил пароль Но что есть id который нужно положить в токен ?

Vladimir- Автор вопроса
Alexander
Айди пользователя))

в бд ? автоинремент который ?

Alexander
JWT просто подписывает данные, которые в открытом ...

У вас какой-то неправильный JWT, вы его без подписи что ли используете?

А можно пример подписанного jwt и пары символов, которые можно в него добавить, сохранив его валидность?

Алексей Попов
А можно пример подписанного jwt и пары символов, к...

Можно, просто убираешь подпись из него и всё, правда я не уверен, что это будет JWT, вроде в нем подпись обязательна

Алексей Попов
А можно пример подписанного jwt и пары символов, к...

В чате можно поискать, вот пример для всех любителей отзывать через черные списки https://t.me/gogolang/696438

Alexander
В чате можно поискать, вот пример для всех любител...

так а что в таком случае мешает отзывать по jti, а не по токену целиком

Alexander
В чате можно поискать, вот пример для всех любител...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта