nanoid
Passport
nanoid | Passport | |
---|---|---|
83 | 63 | |
23,227 | 22,452 | |
- | - | |
8.4 | 5.1 | |
7 days ago | 3 months ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nanoid
-
Next.js and Bunny CDN: Complete Guide to Image Uploading with Server Actions
Last thing left is to use our new upload function in our server action. Since I like to upload images in single format and have some more control over them, I will additionally use sharp library. For file name, I'll generate some random string using nanoid:
- Nano ID Collision Calculator
-
Why we chose Bun
Our API is in node. And God, how I suffered to import nanoid in an esmodule project. I had to vendor it, since using a previous version was not ideal. With bun, we can no longer worry about that. Just import what you need and done.
-
UUIDv7 is coming in PostgreSQL 17
No thread about UUID is complete without a plug for NanoID! https://github.com/ai/nanoid/blob/main/README.md
-
Building a File Storage With Next.js, PostgreSQL, and Minio S3
Generate a unique file name using the nanoid library.
-
Building a Multi-Tenant App with FastAPI, SQLModel, and PropelAuth
The syntax should read similar to SQL itself. We’re using a Python port of nanoid to generate our IDs. There’s only one thing missing… how do we actually create the table?
-
You Don't Need UUID
I usually go for Nano Id for new projects https://github.com/ai/nanoid
-
Enhance Your Web Apps: Best JS Libraries 🔧
Nano ID
-
Analyzing New Unique Identifier Formats (UUIDv6, UUIDv7, and UUIDv8) (2022)
In another comment I mentioned I use nanoid in my projects now. It has a default space of 64^21 and has an a page where you can play with key lengths and alphabet sizes and see the probability of collisions :
https://zelark.github.io/nano-id-cc/
At the default 64 character alphabet with a 21 character key length it would take ~41 million years in order to have a 1% probability of at least one collision if you generated 1000 ids per second.
-
How I use Nano ID in Rails
Using randomly generated IDs like Nano ID could be a good alternative, however, as a developer, we must understand what Nano ID really does in our application. Defining the number of characters in the generated IDs is also important, to help with that Nano ID has a Collision Calculator to give us how many years in order to have a 1% probability of collision.
Passport
-
Non-technical person looking for your help
Next, use something like https://www.npmjs.com/package/passport, this is authentication middleware, and it works similarly for different authentication providers. Carefully read the documentation. OAuth is complicated, but that's because it solves a complicated problem
-
Should I use Passport Js for user authentication?
Passport is outdated and the project has been more or less on a stand-still for years now. As of currently, there are more than 320 open issues and very few have been resolved within the last months. I'd highly advice you not to use Passport for your applications in 2023. You've received some great alternatives by others in the comments here.
-
Exploring the Most Commonly Used Folder Names in Popular NPM Packages
lib: The lib folder, short for "library", is mostly used to store the actual source code of the package, but it can also be used to store third-party code, utilities and helpers. Example from passport.
-
req.logout() not working on passport.js even after adding callback?
Research - there's github and stackoverflow documentation saying this is part of passport.js 0.6.0 that can be resolved by turning logout into a callback function (I was not the first person to encounter this error).
-
Instagram Graph API Explained: How to log in users
passport for authentication
-
Auth.js Authentication for the Web
I went down the rabbithole of using next-auth (now authjs) for a recent project. Having used Passport.js [1] for Oauth2 the last time I was doing node.js ~3 years ago, I found this library to have many footguns as comments/answers on SO and Github.
Seems like many people are trying to shoehorn their codebase [2] (!!) to make it work with the way the library manages sign-in flow, redirects, cookies, logout, etc. [3]
These were solved problems in the MEAN stack era with middlewares, but now that Next.js/react is the trend, people are doing everything they can to make it work - from relaxing security configs, to stashing things in the JWT just so some callback can get an additional piece of data.
[1] https://github.com/jaredhanson/passport
- I'm having error saying that req.isAuthenticated() not a function
-
Authentication with Aws Cognito, Passport and NestJs (Part II)
Passport to act as auth middleware to authenticate requests Passport
-
Recommend an Express + TypeScript repository for user auth code
Checkout using NestJS that uses Passport or just checkout Passport
- PasswordJS
What are some alternatives?
snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.
Keycloak - Open Source Identity and Access Management For Modern Applications and Services
ksuid - K-Sortable Globally Unique IDs
everyauth - node.js auth package (password, facebook, & more) for Connect and Express apps
typedorm - Strongly typed ORM for DynamoDB - Built with the single-table-design pattern in mind.
Grant - OAuth Proxy
pg_random_id - Provides pseudo-random IDs in Postgresql databases
Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
jest - Delightful JavaScript Testing.
supabase - The open source Firebase alternative.
Numeral-js - A javascript library for formatting and manipulating numbers.
passwordless - node.js/express module to authenticate users without password