Похожие чаты

What stops you from creating two separate controllers, one for

regular password and another for otp?

2 ответов

8 просмотров

actually i can able to create two different route one for regular password and one for email otp but in otp route if i will type my regular password then also it get authenticated

Dmytro-Buryak Автор вопроса
nobi Suke
actually i can able to create two different route ...

That's the thing, you don't need any spring security for OTP endpoint at all. It's not classic authN/authZ task which spring-security is used for. Key part in OneTimePassword is *one time*. Spring-security with its mechanisms is about securing your endpoints and making sure that only clients who are allowed are accessing secured resources. While OTP is about *one time* login action (or some other kind of one-time action, like password reset, onboarding, etc.) only. It's not about securing anything. OTP is about having a special public endpoint where users can perform one-time action providing server-generated (usually expirable) secret (which gets deleted after it's used). It's not a regular credentials, you shouldn't secure your main endpoints with OTP. OTP should be used only for this one-time action. In other words, users shouldn't be allowed to make calls to your main secured endpoints with OTP creds. They only should be allowed to log in (or other one-time flow) with OTP on special endpoint. Also, OTP for login will not work with username+password auth as you have it right now. Well, it may work fine only for some other one-time flows, like password reset or some registration flow. But it won't work for login. Because your main auth mechanism requires *USER* to provide password. I.e., server doesn't know the password. And OTP won't be able to subtitute it, because it's *ONE TIME*, it should get deleted after its first use. OTP for login can work only if you use token based auth. Where tokens are generated by *SERVER*. In this mechanism, instead of providing "username+password" with requests (like you have right now), clients provide tokens. Tokens are generated by server, and server manages their lifecycle and validity. OTP are usually called "refresh token", and regular tokens for accessing secured resources are called "access tokens".

Похожие вопросы

Обсуждают сегодня

@LGCYMan @JustinKKW Q/A List 1. this part confuses me on #8: "From there, a bridge between erc20 LGXY and erc20 LGXY will be out once that swap is closed." does this mean ...
Sig | LGCY | BattleVerse L1 | BitWin
1
Did @Beeker really get banned? That's ridiculous. He's one of the few left here with half a brain and you might not always like his narrative @dgb_ycagel , but he often keeps ...
Leroy Gerrits
1
async login(req: Request, res: Response, next: NextFunction): Promise<void> { try { const { errors, input } = await RequestValidator(LoginRequest, req.body...
. .
1
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Hello guys, I have staked Matic as stMatic via Lido nearly a year ago and recently I wanted to unstake but the platform offered me to unstake via Kyberswap for a faster trans...
Mike
7
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
A couple thoughts from a random internet stranger: 1. If you want this project to gain traction you cannot keep being negative. If I just came here after finding out about Kd...
Eric Wild
46
We heading to 1.1$ 🤔?
CryptoBo$$
35
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Карта сайта