У меня есть несколько маршрутов, например /login/:provider/:id
, и когда запрос выполняется, он получает что-то вроде /login/provider1/123
.Пока все хорошо, но проблема возникает, когда я хочу иметь определенные маршруты без аутентификации для своего промежуточного программного обеспечения.
До сих пор я пытался так:
public static getString(value: String): String {
let values = value.split('/');
if (values.length <= 2) return value;
return values.slice(0, values.length - 1).reduce(((previousValue, currentValue) => {
return previousValue + "/" + currentValue;
}));
}
, но это не очень универсальнои не улавливает все случаи.
То, что должно соответствовать исходному маршруту:
/login/anything/anything
Поэтому я выбрал этот маршрут: /login/:provider/:id
, который имеет 3сегменты: [логин, провайдер, идентификатор], поэтому все, что начинается с / логина и имеет такое же количество сегментов, должно совпадать.
и не должно совпадать с чем-либо без одинаковой длины сегментов.
Мой вопрос: существует ли какой-либо конкретный способ получения исходного маршрута без зацикливания после выполнения запроса?Возможно ли то, что я спрашиваю, через регулярное выражение?