пожалуйста
// Генерируем токен
tokenString, err := token.SignedString([]byte("my_secret_key"))
if err != nil {
return "", err
}
И далее получаем из куки данные и проверяем подлинность токена
token, err := jwt.Parse(cookie.Value, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("invalid signing method")
}
return []byte("my_secret_key"), nil
})
А что мне в базу писать ? Я вот сначала сделал как нашел и просто генерировал токен одинаковый и в бд и в куки
Мне сказали это не правильно и сказали нужно проверять подлинность токена
И я запутался, что мне положить в базу my_secret_key ? а его самого генерировать каждый раз например ко времени прибавлять +1 час чтобы такой уникальный ключ создать ? или рандомное число ? не пойму
пришел токен — проверили его, если ок — пустили не надо ничего сохранять
Ну вот получится у меня тоже ааа4444 И его же и записать в БД? И сравнить с тем что в куках? А что есть ключ которым проверяют токен?
1. Логин ввел емейл и пароль, нашли по емейлу БД, проверили пароль по хэшу: - ок, выдали токены (на основе секретного ключа) - не ок, отдали ошибку 2. С токеном пришел за ресурсом взяли токен, проверили секретным ключем, с которым генерировали токен, проверили exp дату истечения: - если ок, то пропустили собирать/загружать контент и отдали реультат - не ок, ошибка все, в простом случае в простой имплементации
А что есть секретный ключ? Это константа и или его каждому пользователю генерировать нужно и тоже сохранять в БД? Рядом с токеном?
Спасибо Мэн 😁👍
Обсуждают сегодня