2016-09-26 5 views
3

Ich habe eine Python-Kolben-Anwendung geschrieben, in der App totp zur Validierung generiert. (Python 2.7)Python Flask app- führenden Nullen in TOTP-Fehler. (Python 2.7)

Ich benutze ontimepass Bibliothek, um totp gegen das Anwendungsgeheimnis zu validieren. Code:

json_data=request.get_json() 
    my_token=json_data['OTP'] 
    is_valid = otp.valid_totp(token=my_token, secret=my_secret) 

jedoch das Problem, das ich mit Blick auf bin, ist, wenn ein TOTP mit führenden Nullen kommt verwandelt es sich in eine Oktalzahl. OTP wird immer als falsch behandelt und der Benutzer kann sich nicht anmelden.

Wie kann ich diese führenden Nullen in einem solchen Fall erhalten? Alle Code-Schnipsel oder Anleitungen helfen Ihnen dabei.

+0

ist nicht das Token immer eine Nummer? (während die Magie nicht ist) – tuergeist

+0

Es ist immer eine Zahl, aber führenden Nullen machen es in eine Oktalzahl. Siehe: http://StackOverflow.com/a/1548437/4651101 – Nik

+0

Ich weiß, es ist üblich. Was ich sagen wollte ist, dass Sie hier keine Dezimalzahlen haben sollten. Einmal dezimal einspeisen, es gibt keine führende 0 und es soll funktionieren (zumindest tut es das für mich) – tuergeist

Antwort

0

Die Antwort war einfach, da my_token als String kam und ich es in eine Zahl umwandelte. Addiert man diese vor zu einer Reihe Umwandlung hat der Trick:

my_token.lstrip("0") #removes leading characters