Zerouth
Zerouth是一个在Node.js应用程序中处理OAuth身份验证的模块。它提供了一个中间件,可以简化各种OAuth提供程序的集成。使用Zerouth,您可以快速为b谷歌,Discord, Reddit, Facebook等流行平台设置OAuth认证,以及更多即将推出的平台。
安装
你可以使用npm或yarn安装Zerouth:
使用 npm:
npm install 0uth
使用纱:
yarn add 0uth
使用
Zerouth旨在使OAuth身份验证在Node.js应用程序中变得更容易。下面是如何使用Zerouth处理不同平台上的OAuth身份验证的示例。
const passport = require('passport');
const zerouth = require('0uth'); // Replace with the correct import path
const express = require("express");
const app = express();
//use middlwares in this sequence only
app.use(require("express-session")({ secret: 'SECRET' , resave: true, saveUninitialized: true}))
app.use(passport.initialize())
app.use(passport.session())
// Define your OAuth configuration
const GoogleConfig = {
client: 'google',
client_id: 'GOOGLE_CLIENT_ID',
redirect_url: '/google/callback', //add http://localhost:3000/google/callback in google cloud console
client_secret: 'GOOGLE_CLIENT_SECRET',
success_redirect: '/success',
failure_redirect: '/login',
scope: ["email", "profile"]
};
const LocalStrategy = {
client: 'local',
client_id: null, //<could_use_cookie>
client_secret: null, //<could_use_cookie>
redirect_url: '/local/callback',
success_redirect: '/local/lmao',
failure_redirect: '/login',
//cb takes (3 argumensts, [req, res, callback])
cb: (req, res, callback)=>{
// if(cookie) return ValidateCookie(cookie, (result:String)=>{callback(null, {username: result.username)})
// validate username and password using your own database
if(req.body.username == "admin" && req.body.password == "admin"){
return callback(null, {username: req.body.username, password: req.body.password})
}
}
}
// Apply the zerouth to your Express app
app.use(
zerouth("/auth/google", GoogleConfig)
);
app.use(
zerouth("/auth/local", LocalStrategy)
);
// Handle successful authentication
app.get('/success', (req, res) => {
return res.send(req.user);
});
// Start your Express server
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
支持的平台上
Zerouth目前支持以下平台的OAuth认证:
- 谷歌
- 不和
- 脸谱网
- GitHub
- Spotify
- …和更多的
配置
Zerouth使用一个配置对象来设置OAuth参数。确保根据OAuth提供程序的要求提供必要的客户端信息和回调url。
配置选项
client: OAuth客户端的名称(例如,‘谷歌’,‘discord’)。client_id: OAuth提供程序提供的客户端ID。client_secret:由OAuth提供程序提供的客户端秘密。redirect_url:认证成功后要重定向到的回调URL。success_redirect:认证成功后要重定向到的URL。failure_redirect:认证失败后重定向到的URL。scope:(可选)用于请求特定权限的范围字符串数组。- …特定于每个OAuth提供程序的其他配置选项。
错误处理
Zerouth为各种场景提供了详细的错误处理,包括无效配置、不支持的客户端以及重复的路径或url。确保根据应用程序的需求适当地处理错误。
贡献
请随意用餐 dev 分支:)
许可证
本项目在 MIT许可证.