I have a Feitian c200 OATH-compatible token but it only generates new codes every 60 seconds instead of the more common 30 second interval.
The current plugin code computes the current code using the current unix time modulo 30 seconds:
$tm = floor( time() / 30 );
I was able to get my token to work by changing the plugin code to:
$tm = floor( time() / 60 );
This works well, but I found that I need to have "relaxed mode" enabled or else it won't work at all -- it keeps saying the code is invalid. I'm not entirely sure why this is as the relaxed mode only works on "periods" of time rather than on a specific number of seconds -- any ideas?
It would be nice to have the plugin have an option to select between 30 second and 60 second time periods (with the default being 30 seconds and a brief note explaining that the 30 second period is more common but the 60 second period is available for certain tokens).
Additionally, it would be nice if there were an option for the user to input their own secret, such as one provided with a hardware token. I've been editing the database entry directly to enter my own secret (thanks for making the necessary database entries clear and understandable: this made it trivial to find where to make the appropriate change) but it'd be nice to have an option in the UI to do so. Perhaps have the option disabled by default to prevent users from entering some trivial or illegal input, but still having the option available for users who are sure they want to input their own secret?
Keep up the good work!