You are browsing as a guest. Sign up (or log in) to start making projects!

Ready to go Authenticator template

  • 8 Devlogs
  • 15 Total hours

A reusable backend starter kit for any website that need user authentication

Ship #1

I created Ready to go Authenticator templete
You can use it in your apps for fast authentication setup. It is really usefull for anyone who is creatign Social media apps, Internet shops and WEB games. It was challenging to use all these technologies at same time - I had to learn a lot, but it was a lot of fun. I am proud of how good of a template it became, how much features it has and how clean code is, if we are not counting monolith structure into account 😎
To use this project read Readme.md but basically create a template from it in github, clone it, docker comppose up --build and thats it.
If you want to check it click ‘Try project’ to see basic frontend that i created, to use my project.
Features:

  • Log in, Sign up ofc
  • View user, change email and password
  • Forgot password
  • Uses Google Auth and hCAPTCHA
  • Has basic Admin page (/admin)
  • Checking whether username is availible
  • Rate limiting (in process)
  • 8 devlogs
  • 15h
  • 13.82x multiplier
  • 206 Stardust
Try project → See source code →
Open comments for this post

2h 8m 26s logged

Rate limiting and documentation
So now BOTS and other spammers cannot enlessly access enpoints and have limits. If you hit one you will be send to stop page, where Arnold would manage you. For all routes is implemented this restriction:
default_limits=["200 per day", "50 per hour"]
And for popular routes that can get under attack like /signup or /login there are more scrict limits.

4
0
35
Open comments for this post

3h 15m 40s logged

Admin page and username availability check
Long time no see) So I added username availability check every 1500 ms, and admin page, where admin can view users and delete them. Frontend should be improved bc it doesnt utilize /admin/view_users full potential, but it is good for now. Also as you can see i added roles, so now you can have admin or user role, where admin role users have access to this page.
Added enspoints:

GET /api/users/check -> Check if a username exists
GET /admin -> Admin dashboard
GET /admin/view_users -> List users (by page)
DELETE /delete_user/<id> -> Delete a user

0
0
95
Open comments for this post

4h 55m 31s logged

Today I wrote Forgot password route
Now users can reset their password through email link:

  1. Enter your email
  2. Open your email and click ‘reset password link’
  3. Write your new password
  4. Now you can use your new update
    Also I added show password checkbox everywhere you enter password
3
0
53
Open comments for this post

2h 48m 33s logged

Today I added a way to update password and email for non OAuth 2.0 users
Today were fixed multiple bugs, improved password validity checking and added a way to change password and email. (image shows what error codes you can get while updating your email)
Other small updates:

  • Improved frontend for users page and settings page (though it isnt this project focus)
  • emails and usernames are now stripped and lowered to prevent misbehavior
0
0
20
Open comments for this post

37m 23s logged

Project progress at this moment, written in hronological order

Day 1-2 (image 1)

  • I wrote basic UI (as UI is not main focus of this project)
  • I added login page and error page => safe_render_template(template_file, jinja_info=None)
  • Connected hCAPTCHA for basic brute force attacks

Day 3 (image 2)

  • I added JWT and signup page
  • Implemented postgresSQL

Day 4-5 (no image)

  • Bug fix, edge case improvements, like missing data etc
  • When there exists valid JWT user is redirected form login/signup page straight to /home_user

Day 6-7 damn numbers (image 3)

  • Started and colmpeted google authentication as second option
  • Changed my database table

Day 8 (image 4)

  • Wrote pytests to tests my code before deployment
  • Dockerized my project
  • Wrote CI/CD pipelines for github for faster deployment

There is a lot to add next step is to implement CRUD operations

0
0
8
Open comments for this post

22m 10s logged

Information about this project
I started this project a couple weeks ago (Jul 4th) as an idea to create a fast, ready to go authentication system bassically for any project with advanced features. Unfortunately i didnt started posting in stardance when i started and I did not have Hackatime time tracking. Luckily I used git in this project and in couple next posts I will post progress that I made. I will post by chunks with significant moments. From now on I will track time and post oftenly 😁
(image shows current version of sign up page)

0
0
24

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…