1
1
from datetime import datetime
2
- from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
2
+ from itsdangerous import URLSafeTimedSerializer as Serializer
3
3
from flask import current_app
4
4
from flaskblog import db , login_manager
5
5
from flask_login import UserMixin
@@ -18,15 +18,15 @@ class User(db.Model, UserMixin):
18
18
password = db .Column (db .String (60 ), nullable = False )
19
19
posts = db .relationship ('Post' , backref = 'author' , lazy = True )
20
20
21
- def get_reset_token (self , expires_sec = 1800 ):
22
- s = Serializer (current_app .config ['SECRET_KEY' ], expires_sec )
23
- return s .dumps ({'user_id' : self .id }). decode ( 'utf-8' )
21
+ def get_reset_token (self ):
22
+ s = Serializer (current_app .config ['SECRET_KEY' ], 'confirmation' )
23
+ return s .dumps ({'user_id' : self .id })
24
24
25
25
@staticmethod
26
- def verify_reset_token (token ):
27
- s = Serializer (current_app .config ['SECRET_KEY' ])
26
+ def verify_reset_token (token , max_age = 1800 ):
27
+ s = Serializer (current_app .config ['SECRET_KEY' ], 'confirmation' )
28
28
try :
29
- user_id = s .loads (token )['user_id' ]
29
+ user_id = s .loads (token , max_age = max_age )['user_id' ]
30
30
except :
31
31
return None
32
32
return User .query .get (user_id )
0 commit comments