Comments 10
Рад стараться!
Постараюсь далее публиковать по одной части в неделю.
А есть смысл использовать объект g, если в любой момент (в том числе и в темлейтах) можно обратиться к current_user?
Кто будет читать эту статью, автор забыл упомянуть что в models.py были добавлены не сколько функций которые нужны для Flask-Login, например is_active() без них у вас не получится авторизоваться.
В переводе пропущен кусок кода и описание. что приводит к неработаюшему приложению.
Таким образом можно ставить под сомнение остальные части перевода.
Лучше использовать оригинал.

Below is our Flask-Login friendly User class (file app/models.py):

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
posts = db.relationship('Post', backref='author', lazy='dynamic')

def is_authenticated(self):
return True

def is_active(self):
return True

def is_anonymous(self):
return False

def get_id(self):
try:
return unicode(self.id) # python 2
except NameError:
return str(self.id) # python 3

def __repr__(self):
return '<User %r>' % (self.nickname)
Если у вас уже новый Flask, то если у вас возникает ошибка:
if g.user is not None and g.user.is_authenticated():
TypeError: 'bool' object is not callable

То надо в 2 файлах ( app/views.py, app/templates/base.html ) заменить:
g.user.is_authenticated()

на
g.user.is_authenticated

Вот объяснение.

Ну и OpenID провайдер, например, https://openid.stackexchange.com/
По поводу перехода по next в фукнции after_login. На сайте Flask'а есть замечательный сниппет на эту тему.
Суть в том, чтобы избежать подсовывания левых (на другой домен) обратных ссылок пользователю.

Addon: а ещё, current_user уже и так доступен из шаблонов, без копирования его в g.user.
Вообще рекомендую вторую книгу от ребят https://realpython.com/, так как раз о Фласке. Она будет проще для начала, чем эти уроки.
Only those users with full accounts are able to leave comments. Log in, please.