Skip to content

Github Google Oauth, Email Password, Magic Link Session Based Authentication for Astro using Drizzle ORM

License

Notifications You must be signed in to change notification settings

ksjitendra18/astro-js-auth-oauth-passwordless-credentials

Repository files navigation

Astro Authentication Guide: Google Github OAuth Guide, Email Password

This repo is for the series of blog post covering Authentication in Astro.

Main branch contains the latest updated code. If you're following the blog post, please use the specific branch for the post.

Technolgies Used

  • Turso DB
  • Drizzle ORM
  • Redis for storing verification codes and rate limiting
  • Resend for sending emails
  • Solid.js
  • Zod
  • Database session strategy for auth persistence
  • Argon2 for password hashing

I am not using any external auth library for this guide. At the moment of writing, Auth.js doesn't support Astro. In a separate blog post I will do all these authentication strategy through Lucia Auth.

Getting Started

To get started, clone the repo and run the following commands:

npm install

Now copy the .env.example file to .env and fill in the values.

Please refer to blog post for github and google oauth setup.

You will need Turso DB and Redis for it. You can use sqlite or choose other database but then you will have to make changes in the schema. For Redis, I am using Upstash Redis.

For emails you can use any email service which provides HTTP API.I am using Resend for sending emails. If you provider doesn't support HTTP API, you will have to make changes in the code (although single file)

To run the project, run the following command:

npm run dev 

Here are the strategies with their starter code, finished code and also the related blog post.

1. Oauth (Google and Github)

2. Email Password Credential Based

3. Passwordless (Magic Link) Auth

4. Integrating Two-Factor Auth

Integration of TOTP based verification along with recovery codes.

About

Github Google Oauth, Email Password, Magic Link Session Based Authentication for Astro using Drizzle ORM

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published