首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PostgreSQL部署到Heroku时无法使用Flask登录

使用PostgreSQL部署到Heroku时无法使用Flask登录
EN

Stack Overflow用户
提问于 2022-12-01 02:20:15
回答 1查看 18关注 0票数 0

我正在构建一个简单的身份验证页面,该页面使用部署在Heroku上的SQLAlchemy和PostgreSQL。

我能够注册用户,但无法登录。

登录代码:

代码语言:javascript
复制
@indexbp.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated:
        flash("You have already logged in!", 'success')
        return redirect('/')
    form = LoginForm()
    if form.validate_on_submit():
        try:
            user = User.query.filter_by(username=form.username.data).first()
            if bcrypt.check_password_hash(user.hashed_password, form.password.data):
                login_user(user)
                flash('You are logged in!', 'success')
                return redirect('/')
        except AttributeError:
            db.session.rollback()
            flash('Wrong username, password or email. Please try again!', 'info')
            return redirect('/login')
        except Exception as e:
            print(e)
            db.session.rollback()
            flash('Something went wrong inside our systems, please try again later. If this problem persists, please contact our admin team.', 'danger')
            return redirect('/login')
    return render_template('login.html', form=form)

`

注册代码:`

代码语言:javascript
复制
@indexbp.route('/register', methods=['GET', 'POST'])
def register():
    if current_user.is_authenticated:
        flash("You have already logged in!", 'success')
        return redirect('/')
    form = RegisterForm()
    if form.validate_on_submit():
        try:
            new_user = User(username=form.username.data, hashed_password=bcrypt.generate_password_hash(form.password.data), user_id=str(uuid.uuid1()))
            db.session.add(new_user)
            db.session.commit()
            return redirect('/login')
        except Exception as e:
            print(str(e))
            db.session.rollback()
            flash('Something went wrong inside our systems, please try again later. If this problem persists, please contact our admin team.', 'danger')
            return redirect('/register')
    return render_template('register.html', form=form)

`

用户表:`

代码语言:javascript
复制
#User table
class User(db.Model, UserMixin):
    id = db.Column(db.Integer(), primary_key=True, unique=True, nullable=False)
    username = db.Column(db.String(), unique=True, nullable=False)
    hashed_password = db.Column(db.String(), unique=False, nullable=False)
    user_id = db.Column(db.String(), unique=True, nullable=False)

`

烧瓶:`

代码语言:javascript
复制
app.config['SQLALCHEMY_DATABASE_URI'] = "link-to-database-provided-by-heroku"
app.config['SECRET_KEY'] = "g3AbKqKhxhCACvFNlNgLv802LUBwXQKr4X4Z9J9d"

`

我尝试过迁移数据库,并多次对其进行检查。我也尝试在本地运行它,但只注册工作。

我安装了psycopg2并重新配置了User表。

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 13:02:23

问题是酒瓶-Bcrypt不能正常工作。将我的散列函数更改为md5,它起了作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74636286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档