пожалуйста 
                  
                  
                  // Генерируем токен
                  
                  
                    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 дату истечения: - если ок, то пропустили собирать/загружать контент и отдали реультат - не ок, ошибка все, в простом случае в простой имплементации
А что есть секретный ключ? Это константа и или его каждому пользователю генерировать нужно и тоже сохранять в БД? Рядом с токеном?
Спасибо Мэн 😁👍
Обсуждают сегодня