开发了一个Nodejs云端用户认证系统
开发了一个Nodejs云端用户认证系统
域名正在审核中
Github 地址(白皮书):https://github.com/Authing/authing 文档地址(用 HTTPS 暂时跳过了备案认证):https://docs.authing.cn
功能特性
Authing 的产品目标,是让用户用最少的时间和最少的代码拥有以下功能:
- 主流第三方 OAuth 配置接入;
- 基于 Web 的用户管理系统(权限管理、身份管理、基础 CRUD );
- 跨平台多终端集成能力( Android、iOS、HTML5 );
- 多语言 SDK ( JavaScript、Node、Java、Python、Swift、PHP );
- 基于 HTTPS、JWT、MD5、SHA256、Salt 和非对称加密的安全身份认证;
- 基于消息队列的邮件服务、基于 Web 的邮件模版配置服务以及自定义第三方邮件服务的能力;
- 基于指纹验证等的生物认证方式;
- 易集成、易拓展的插件系统和可编程规则接入;
- 用户登录地点、IP 监控;
开发平台
目前只支持 JavaScript
欢迎大家关注。
因为备案问题,功能还未开放。
欢迎大家 star github 上的项目,有兴趣的朋友可以加我微信( ivydo*m )共同开发: )
这个项目国外的对标产品是 [auth0.com]( https://auth0.com)
顶上去 让更多人看到
我说说我对 Authing 的理解,不知道对不对
Authing 就是一套用 Node.js 搭建的用 JWT 做 TOKEN 的身份鉴权框架
那我的服务在接入 Authing 后,Authing 是运行在我本地,还是我的本地服务每次鉴权,都需要访问 Authing 的服务?
另外,看到 Authing 有权限管理的功能,这套权限管理是基于什么呢?角色或是组织?甚至是到个人?
类似微信 openid 的意思?
你好
鉴权需要访问 authing 的服务
权限管理目前仅限于个人
可以这么理解,同时支持第三方 oauth 的快速接入
还包括邮件服务 oauth 服务等快速接入
感觉和 Google firebase 里面的 authenticator 差不多
可能怎么让别人的服务接入你的权限管理才是难点,毕竟这属于每个服务的机密数据
嗯 最像的是 auth0.com
有兴趣吗?有兴趣的话可以加微信聊聊
😂😂😂我就算了,只不过我最近在做自己的一套权限管理的东西,刚好看到你的帖子,就讨论了一下
soga
因人而异吧
有个 auth0,就是卖 authentication-as-a-service
对 我们和他很像
这是个相当大的工程!
介绍个 keycloak 你值得拥有
嗯嗯 thx 可以参考
1000 人免费 2000 人 50 按量付费 10 万人的话大概 9000
打算提供本地部署版本么?
有提供的
很高兴听到你开发了一个Node.js云端用户认证系统!这是一个非常基础且重要的功能,对于保障系统的安全性至关重要。以下是一些建议和可能的代码片段,帮助你进一步完善和优化你的系统。
首先,确保你使用了安全的密码存储方法。在Node.js中,推荐使用bcrypt
库来哈希密码。以下是一个简单的示例:
const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 'yourPassword123';
const someOtherPlaintextPassword = 'notTheRightOne';
bcrypt.hash(myPlaintextPassword, saltRounds, function(err, hash) {
// Store hash in your password DB.
console.log(hash);
});
// Verify password
bcrypt.compare(someOtherPlaintextPassword, hash, function(err, result) {
if (result) {
console.log('Password match!');
} else {
console.log('Password do not match!');
}
});
其次,考虑使用JWT(JSON Web Tokens)来实现无状态的身份验证。这有助于减轻服务器的负担,并提高系统的可扩展性。你可以使用jsonwebtoken
库来生成和验证令牌:
const jwt = require('jsonwebtoken');
const token = jwt.sign({ username: 'user1' }, 'yourSecretKey', { expiresIn: '1h' });
// Verify token
jwt.verify(token, 'yourSecretKey', function(err, decoded) {
if (err) {
return err.message;
}
console.log(decoded.username); // user1
});
最后,别忘了对API进行充分的测试,并持续监控系统的安全性。祝你的项目顺利!