Skip to content

gagansuie/worker-auth-providers-cc

 
 

Repository files navigation

worker-auth-providers-cc

worker-auth-providers-cc

An open-source auth providers for Cloudflare workers

Repo Size Issues Pull Requests Last Commit

worker-auth-providers-cc is an open-source providers to make authentication easy with workers. Very lightweight script which doesn't need a lot of dependencies. Plug it with any framework or template of workers.

🚀 Demo

Try now

🧐 Features

  • Open Source
  • Fast & Lightweight
  • Easy

🛠️ Installation

Step 1: Install the dependencies

npm install worker-auth-providers-cc

Step 2: Import the dependencies

import {
	github,
	google,
	twilio,
	facebook,
	discord,
	spotify,
	linkedin,
} from "worker-auth-providers-cc";

Step 3: Redirect users

const githubLoginUrl = await github.redirect({
	options: {
		clientId,
	},
});
return {
	status: 302,
	headers: {
		location: githubLoginUrl,
	},
};

// or send otp

const res = await awsSNS.send({
	options: {
		phone,
		region: "ap-south-1",
		kvProvider: WORKER_AUTH_PROVIDERS_STORE,
	},
});

Step 4: Get user

const { user: providerUser, tokens } = await github.users({
	options: { clientSecret, clientId },
	request,
});
console.log("[providerUser]", providerUser);

// or verify otp
const res = await awsSNS.verify({
	options: {
		phone,
		otp,
		kvProvider: WORKER_AUTH_PROVIDERS_STORE,
		secret:
			"eyJhbGciOiJIUzI1NiJ9.ew0KICAic3ViIjogIjE2Mjc4MTE1MDEiLA0KICAibmFtZSI6ICJoYWFsLmluIiwNCiAgImlhdCI6ICIwMTA4MjAyMCINCn0.aNr18szvBz3Db3HAsJ-2KHYbnnHwHfK65CiZ_AWwpc0",
	},
});

📃 Documentation

Coming soon

👩‍💻 Tech

🍰 Contributing

Contributions are always welcome! See contributing.md for ways to get started. Please adhere to this project's code of conduct.

Roadmap

  • Docs.
  • Apple.
  • Azure (Microsoft)
  • Google.
  • Github
  • OTP Twilio
  • Mailgun Email
  • Sendgrid Email
  • Facebook
  • Discord
  • Instagram
  • Amazon
  • Twitter
  • Spotify
  • LinkedIn
  • Auth0

##FAQs

How to persist login?

Use cookie. Setting a cookie to indicate that they’re authorized for future requests

const cookieKey = "worker-auth-providers-cc"
const persistAuth = async exchange => {
    const date = new Date()  date.setDate(date.getDate() + 1)
    const headers = {
      Location: "/",
      "Set-cookie": `${cookieKey}=${id}; Secure; HttpOnly; SameSite=Lax; Expires=${date.toUTCString()}`,
    }
    return { headers, status: 302 }
}

How to logout?

Easy, delete the cookie

export const logout = (event) => {
	const cookieHeader = event.request.headers.get("Cookie");
	if (cookieHeader && cookieHeader.includes(cookieKey)) {
		return {
			headers: {
				"Set-cookie": `${cookieKey}=""; HttpOnly; Secure; SameSite=Lax;`,
			},
		};
	}
	return {};
};

Feedback

If you have any feedback, please reach out to me at support@codecrow.io

✍️ Authors

💼 License

MIT

About

worker-auth-providers is an open-source providers to make authentication easy with workers. Very lightweight script which doesn't need a lot of dependencies. Plug it with any framework or template of workers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 95.5%
  • CSS 1.6%
  • JavaScript 1.1%
  • Other 1.8%