Skip to content

Conversation

@jmhooper
Copy link

The ROTP gem expects the prior timestamp in verify_with_drift_and_prior to be an integer. Moreover, when verify_with_drift_and_prior returns it returns an integer.

We noticed a bug where the totp_timestamp column was always nil. The reason for this was that the database had a timestamp column and when this gem was attempting to assign totp_timestamp to an integer, it was actually set to nil.

This commit changes the column to an integer instead of a timestamp to avoid the problem described above.

Another potential solution is to change the result of verify_with_drift_and_prior to a datetime before saving, and then change the value of totp_timestamp to an integer before calling verify_with_drift_and_prior.

I went with the solution I did instead b/c it looked like the path of least resistance, but am happy to modify my PR to leave the column as a timestamp and handle moving between integers and dates in the authenticate_totp method.

The ROTP gem expects the prior timestamp in
`verify_with_drift_and_prior` to be an integer. Moreover, when
`verify_with_drift_and_prior` returns it returns an integer.

We noticed a bug where the totp_timestamp column was always nil. The
reason for this was that the database had a timestamp column and when
this gem was attempting to assign `totp_timestamp` to an integer, it
was actually set to nil.

This commit changes the column to an integer instead of an integer to
avoid the problem described above.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant