Casdoor 是一个基于 OAuth 2.0 / OIDC 的中心化的单点登录( SSO )身份验证平台,简单来说,就是 Casdoor 可以帮你解决用户管理的难题,你无需开发用户登录、注册等与用户鉴权相关的一系列功能,只需几个步骤进行简单配置,与你的主应用配合,便可完全托管你的用户模块,简单省心,功能强大。Casdoor 目前作为 Casbin 社区项目统一使用的鉴权平台,并且项目已开源。
仓库地址:https://github.com/casbin/casdoor
官网文档:https://casdoor.org/
用户管理一直是项目中非常令人头疼的一个问题,不仅要确保安全性,功能是否完整,方便使用也十分重要。目前大多数应用已从过去单一的账号密码登录,逐渐升级为允许通过第三方平台登录,例如 GitHub 、微信、QQ 等,但是这一套逻辑依然需要开发者去实现,大多数功能偏离了业务。
Casdoor 就是替开发者们解决这个难题,即提供一套统一的鉴权平台,只需要简单配置便可完全托管用户模块,功能完备,配置简单,上手难度低。它具有以下特性:
Casdoor 支持 Github, Google, QQ, WeChat, Facebook, Gitee 等第三方应用程序登录,并支持使用插件扩展第三方登录
使用 Casbin 基于授权管理,Casdoor 支持 ACL, RBAC, ABAC, RESTful 等访问控制模型
个性化的注册、登录和忘记密码页面。支持手机验证码、邮件验证码、找回密码等功能
使用阿里云、腾讯云、七牛云提供的图片 CDN 云存储
Casdoor 支持使用 db 同步方法与现有系统的集成,用户可以顺利过渡到 Casdoor
Casdoor 支持的主流数据库: MySQL, SQL Server, PostgreSQL 等, 并支持扩展插件的新数据库
首先,Casdoor 的授权程序建立在 OAuth 2 的基础上:OAuth 2 是一个工业级别的开发授权协议,可以使用户授权第三方网站 /应用访问他们在特定网站上的信息,而不必向第三方网站 /应用提供密码。
整个过程如下图所示,一共分成六个步骤:向用户发送授权请求、获得授权认证、向授权服务器发送授权认证并验证、获取访问令牌、给资源服务器发送访问令牌、获得受保护的资源。
作为服务提供商(SP),Casdoor 支持两项认证协议:OAuth 2.0 (OIDC) 和 SAML ;作为身份提供商 (Idp),Casdoor 也支持两个认证协议:OAuth 2.0 (OIDC) 和 CAS 2.0 。
因此,您的应用程序将通过 OAuth 2.0 (OIDC) 与 Casdoor 连接。 具体而言,有三种方式:
Casdoor 完全实现了 OIDC 协议。 如果您的应用程序已经运行了另一个 OAuth 2 ,那么 (OIDC) 身份提供商一般会通过标准的 OIDC 客户端库提供服务,如果您想要迁移到 Casdoor , 使用 OIDC discovery 会帮助您非常容易地切换到 Casdoor 。Casdoor's OIDC discovery URL 是
<your-casdoor-backend-host>/.well-known/openid-configuration
与标准的 OIDC 协议相比,Casdoor 在 SDK 中提供了更多的功能,如用户管理、资源上传等。 通过 Casdoor SDK 连接到 Casdoor 的成本比使用 OIDC 标准客户端库更高,并将提供灵活性最佳和最强大的 API 。
Casdoor SDK 可分为两类:前端 sdk 和后端 sdk
前端 sdk | 源码地址 |
---|---|
JavaScript sdk | https://github.com/casdoor/casdoor-js-sdk |
Vue sdk | https://github.com/casdoor/casdoor-vue-sdk |
Android sdk | https://github.com/casdoor/casdoor-android-sdk |
IOS sdk | https://github.com/casdoor/casdoor-ios-sdk |
后端 sdk | 源码地址 |
---|---|
Go sdk | https://github.com/casdoor/casdoor-go-sdk |
Java sdk | https://github.com/casdoor/casdoor-java-sdk |
Node.js sdk | https://github.com/casdoor/casdoor-nodejs-sdk |
Python sdk | https://github.com/casdoor/casdoor-python-sdk |
PHP sdk | https://github.com/casdoor/casdoor-php-sdk |
.NET sdk | https://github.com/casdoor/casdonet-sdk |
前后端配置的详细方法请参考文档
https://casdoor.org/zh/docs/how-to-connect/sdk
如果您的应用是建立在一个流行的平台上,并且 Casdoor(或第三方) 已经为它提供了一个插件或中间件,那么就可以直接使用。它比手动使用 Casdoor SDK 更容易使用,因为前者是专门为平台制作的。
Casdoor 为一些热门平台提供插件或中间件,例如 Java 的 SpringBoot 、PHP 的 WordPress 、Python 的 Odoo 等
Casnode 是 Casbin 社区开发的官方论坛,它使用的就是 Casdoor 作为认证平台并管理成员。下面以 Casnode 的登陆为例演示 Casdoor 的使用效果。
点击右上角的登录按钮
进入登录选择界面,可以选择一个你信任的或常用的平台进行授权
授权之后会进入登录页面,以 Google, Wechat, QQ, Gitee 为例
登录成功之后可以在设置里查看用户信息,并且可以绑定其他平台的账号,以便下次登陆
我们希望 Casdoor 能帮助广大开发者们解决用户管理的难题,更专注主要业务,提高开发效率。同时作为一个开源项目,我们也非常希望获得大家的使用建议,帮助我们更好地改善项目质量,从功能、易用性等方面更好地满足大家的需求。
如果使用过程中有任何疑问,欢迎加入社区 QQ 群交流( QQ 群:645200447 ),提 Issues 、提 PR 也是十分欢迎的!
1
interim 2022-11-25 11:23:46 +08:00 2
你们的黑料可不少,包括不限于 https://cn.v2ex.com/t/895128
|
2
janxin 2022-11-25 11:44:06 +08:00
casdoor 发版过于频繁了...
|
4
yopv2 2022-11-25 12:46:20 +08:00
虽然我知道发帖会增加你们的热度 ,但是你们这种推广也太……
|
5
ElicaKing 2023-10-26 14:23:34 +08:00
你好,我是公众号《桑小榆呀》号主,觉得此篇内容非常有趣,能给到大家一些学习和帮助,希望能够分享到我的公众号,还望您能允许~谢谢!
|
9
pytth 307 天前 via iPhone
说真的,这种属于反向推广。
|