Skip to content

MILESTONE -- Account Verification #10

@jeturcotte

Description

@jeturcotte

Users who exist and are able to log into and out of accounts have various reasons why they may need to be able to receive email notifications. This milestone invents the capacity to send our users these messages.

  • RESEARCH: https://github.com/szabgab/perl6-Email-Send
    • LEARN about sendmail
    • CONSIDER alternatives
  • TASK: establish a means of sending email to the email listed in any given account
    • Install a sendmail interface like the one listed about
    • Create a generic in-cro function that will accept an account and message content and will send that combination as an email
  • TASK: Create a data storage for temporary single-use tokens that will be used to help new users verify their accounts
    • Part of the point is to PROVE the email they gave us is real AND belongs to them
    • The other part is to put up an annoying barrier in the way of bots clogging our system with fake accounts
    • Create a data store; you can use SQL or you could try using REDIS
    • Add space to store the account identity and a uniquely generated token
  • TASK: create a function that will generate a unique token
    • (consider looking up UUID)
  • TASK: create a function that uses the email sending function to specifically sent an account verification email
    • Take in an email
    • Take in a user name
    • Take in a token
    • Generate a 'please verify by clicking here' email template (plain text is fine for now) using these details
      • This template should thank them
      • This template should ask them to verify
      • This template should print a link to /verify/$email/$token$
    • Call the generic email sending function
    • Return success or failure, depending
  • TASK: Create a /verify/ endpoint
    • Use POST to recieve /verify/$email/$token
    • Look in the data store for the pairing of email and token
    • If they are present, mark the account as verified
      • and return a thank you html page
    • If not present, do nothing but return a thank you page, too
      • This way bots cannot learn who is or is not in our system

Metadata

Metadata

Labels

AuthenticationAny task tagged with this will add or modify authentication practicesEmail NotificationsAny task tagged with this will add or modify email-to-user functionalityUser AccountAny task tagged with this will add or modify user account functionality

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions