Im building an api in my nextjs 14 project that i want to put behind auth using api keys and rate limit it. What is the go to way to handle generating unique api keys and authenticating the request + rate limiting?