# #go #go-fiber
Вопрос:
Мне удалось использовать локальный контекст для настройки результатов запросов к базе данных с помощью пользовательского промежуточного программного обеспечения. Я пытаюсь понять, как я могу аутентифицировать пользователя, затем извлечь его данные из базы данных и ввести их в контекст. Это было сделано.
Локальные данные о конечном методе на маршруте на самом деле являются интерфейсом, и я хотел бы извлечь поля из данных, которые я установил в предыдущем промежуточном программном обеспечении аутентификации. Как я могу работать с этим типом интерфейса в какой-либо форме, такой как структура или json, чтобы я мог получать поля и значения для выполнения некоторой логики?
user := c.Locals("user") fmt.Println("checking for locals",user)
Сверху пользователь имеет структуру пользователя
{ Name string `json:"name"` Emain string `json:"email"` ID string `json:"id"` Password string `json:"password"` }
Как я могу узнать имя и адрес электронной почты ?
Ответ №1:
Поэтому, покопавшись в документах fiber и прочитав об интерфейсах и особенно пустых интерфейсах, я думаю, что у меня есть решение, но его нужно исправить
Я видел, что можно привести интерфейс к конкретному типу. В моем случае я бы выбрал c.Locals("user")
тип var user interface{}
затем приведите его к структуре, передав указатель на пользовательскую модель следующим образом
user := c.Locals("user") details, ok :=user.(*models.User) fmt.Println("checking for locals -----------",details.Name)