Я работаю над проектом с использованиемnesjs.
Во время проекта мне было любопытно, как можно использовать guard.
Если я использую охрану при входе в систему, я думаю, что трудно дать отзыв о том, неправильный ли идентификатор или пароль. Я хочу дать различные сообщения о возможных ошибках.
Поэтому я пытаюсь выполнять защитное программирование с помощью кода без использования защиты. Можно ли не использовать охрану в этой ситуации? Интересно, всегда ли полезно использовать охрану?
Я искал Nestjs, который не использует защиту, но не нашел ответа.
Это может быть простой вопрос, но я надеюсь, вы понимаете, что это очень беспокоит меня. Спасибо.
Конечно, вам не обязательно использовать guards
, но это helper
функции, которые значительно упрощают наши операции. Первая цель сторожей - отловить ошибку приоритета, если возникает ситуация, когда вы хотите отловить ошибку до этого, то все равно не рекомендуется использовать гуард там. Пример
@Roles(UserRoles.Admin)
@UseGuards(AuthGuard("jwt"),RolesGuard)
async getUser(@Param('userId') userId:string): Promise<Object | User> { // Return Users by name
const user = await this.userService.getUserById(userId)
if (!user) return {msg:"User not found",status:"error"};
return user
}
first thing
Мне нужно отловить перед другими ошибками роль пользователя и то, вошел ли он в систему. Мы можем считать это priority
. Затем я использовал ошибки, которые мне нужно было отлавливать inside
функциями. В общем, мы предпочитаем использовать охранников, если есть ситуации, когда нам нужно их поймать first.
Нет смысла использовать Guard на конечной точке входа. Это одна из немногих конечных точек, которые не должны иметь никаких охранников, чтобы вы могли правильно выполнять логику входа в систему.