Comments (5)
Hi,
Thank you for the issue report.
I am not sure it is a bug from the library. I think that when you run your test the timecode changed.
Could you try your tests using a window parameter i.e. $totp->verify($otp, null, 1)
?
from otphp.
In fact I think you misunderstood how period works.
In your example the OTP are valid for 10 sec. but if you get it 2 sec before it expires then 5 seconds later the test will fail.
Example: the timestamp is 123456789. The timecode is 12345678. If you wait 5 seconds the timestamp is 123456794 but the timecode is 12345679. The otp is not verified.
An OTP is always valid for the given period of time. But when you get it, it may be valid only for few seconds.
from otphp.
What's the point of a few second life for otp password in real world use ? Could you give me an example ?
from otphp.
None. That is why a window parameter exists.
from otphp.
That means if I really want OTP life for 60 seconds, so I have to set period to 30 and window = 1. Am I right ?
from otphp.
Related Issues (20)
- Not identifying the service HOT 2
- Decimal time window HOT 7
- question: what data to use for getting TOTP HOT 2
- PHP 8 HOT 2
- new feature made (getExpiration) HOT 4
- OTP verification failed if set custom period HOT 6
- Make setSecret() public HOT 4
- add issuer to getQrCodeUri HOT 1
- Invalid links in the Readme file HOT 1
- TOTP -> verify doesn't seem to be correctly implemented to include leeway HOT 1
- Dependency issue with thecodingmachine/safe HOT 4
- `OTPInterface::create(null|string $secret = null)` is prone to misuse HOT 3
- Missing generate static method in TOTP.php HOT 2
- invalid OTP URI HOT 9
- PSR Clock HOT 3
- TOTP code almost always verifies false HOT 3
- Migration path should be clear for the leeway/window HOT 5
- Authenticator app compatibility HOT 1
- OTPHP not being loaded via autoload HOT 2
- Verification fails with documentation defaults? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from otphp.