I have an endpoint:
@register_endpoint.route('/<string:token>/verify', methods=['GET'])
def display_register_form(token):
error = None
decrypted_token = SecureMessage().decrypt(token)
user_data = json.loads(decrypted_token)
form = RegisterAccountForm()
return render_template("auth/account_validation.html", form=form, error=error, user_data=user_data)
@register_endpoint.route('/<string:token>/verify', methods=['POST'])
def register_account():
form = SignupForm(request.form)
if form.validate_on_submit():
email = form.email.data
first_name = form.first_name.data
last_name = form.last_name.data
password = form.password.data
json_user = json.dumps({"first_name": first_name, "last_name": last_name, "email": email, "password": password})
response = requests.post("http://0.0.0.0:5000/api/v1/accounts", json=json_user)
if response.status_code == 200:
return redirect(url_for('account.signin'))
The GET endpoint display the following form:
<form action="{{ url_for('register.register_account') }}" method="post">
<input name="first_name" class="user" type="text" required="" placeholder="{{ user_data["first_name"] }}" disabled/><br>
<input name="first_name" class="user" type="text" required="" placeholder="{{ user_data["last_name"] }}" disabled/><br>
<input name="email" class="user" type="text" required="" placeholder="{{ user_data["email"] }}" disabled/><br>
<input placeholder="Password" name="password" class="pass" type="password" required=""><br>
<input placeholder="Password verification" name="password_verification" class="pass" type="password" required=""><br>
{{ form.csrf_token }}
<input type="submit" value="">
</form>
When the user fill the it is supposed to be post on the POST endpoint above, the problem is that I have an error:
Could not build url for endpoint 'register.register_account'. Did you forget to specify values ['token']?
How can I solve this problem? Can I make the token optional? What is the best architecture to solve my problem?