I’ve only started using Fauna recently, and currently I’m working on a simple app with Python Flask, but I came across an error that as gotten me stumped.
Here is a snippet of my app.py file
# Imports
import re
from werkzeug.security import generate_password_hash, check_password_hash
from flask import Flask, flash, redirect, url_for, render_template, request, session
from faunadb import query as q
from faunadb.client import FaunaClient
from faunadb.objects import Ref
from faunadb.errors import BadRequest, NotFound
import os, secrets
app = Flask(__name__)
client = FaunaClient(secret='fnAEVC9n1aAAQ63NzTNAgnHhs5IPNTzQvzqlSDwm')
@app.route('/')
def index():
if session.get('user_id'):
flash('You are logged in!', 'warning')
return redirect(url_for('dashboard'))
return render_template('index.html')
@app.route('/sign_up/', methods=['POST','GET'])
def sign_up():
if session.get('user_id'):
flash('You are logged in!', 'warning')
return redirect(url_for('dashboard'))
if request.method =='POST':
name = request.form['name']
email = request.form['email']
password = request.form['password']
email_regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
if not re.search(email_regex, email) or not 6 < len(password) < 20:
flash('Invalid email or password!, password needs to be between 6 and 20 characters', 'warning')
return render_template('sign_up.html')
if password != request.form['confirm_password']:
flash('Passwords do not match', 'warning')
return render_template('sign_up.html')
password = generate_password_hash(password)
user = {'name': name, 'email': email, 'password': password}
try:
new_user = client.query(
q.create(
q.collection("Users"),
{'data': user}
))
except BadRequest:
flash('Email already exists')
else:
session['user_id'] = new_user['ref'].id()
flash('Account created successfully', 'success')
return redirect(url_for('dashboard'))
return render_template('sign_up.html')
if __name__ == "__main__":
app.run()
I’m trying to test the ‘sign_up’ route, but when I enter in information in a form and submit, I’ll get an Unauthorized error pointing to this line:
new_user = client.query(
Any ideas on where the error is coming from? I’m guessing it has to do with the way I set up the FaunaSecret.