From 4ef5b480b174c188086f3ccff73ac1658101a3f9 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Mon, 8 Jul 2019 13:55:56 +0200
Subject: [PATCH] Add reset token generation functionality in User class.

---
 app/models.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/models.py b/app/models.py
index d6bccb02..d7d33b85 100644
--- a/app/models.py
+++ b/app/models.py
@@ -1,4 +1,6 @@
+from flask import current_app
 from flask_login import UserMixin
+from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
 from werkzeug.security import generate_password_hash, check_password_hash
 from . import db
 from . import login_manager
@@ -26,6 +28,10 @@ class User(UserMixin, db.Model):
 
     password_hash = db.Column(db.String(128))
 
+    def generate_reset_token(self, expiration=3600):
+        s = Serializer(current_app.config['SECRET_KEY'], expiration)
+        return s.dumps({'reset': self.id}).decode('utf-8')
+
     @property
     def password(self):
         raise AttributeError('password is not a readable attribute')
-- 
GitLab