Skip to main content

概览

城门是基于 OAuth 2.0 / OIDC 的 UI 首次中央身份验证/ 单点登录(SSO) 平台。

连锁店既为网页界面服务,也为应用程序用户的登录请求服务。

出门功能:

  1. 前端和后端单独的架构由Golang开发,Castor支持高同步,提供基于网络的用户界面管理,并支持多种语言(中文和英文)。

  2. Cassdoor 支持 Github、Google、QQ、WeChat 第三方应用程序登录,并支持使用插件扩展第三方登录。

  3. 使用 Cassbin 基于授权管理,Casdoor 支持 ACL,RBAC,ABAC,RESTfify 访问控制模型。

  4. 电话验证码、电子邮件验证码和忘记密码功能。

  5. 正在查阅日志审计和记录。

  6. Alibaba Cloud, Tencent Cloud, Qiniu Cloud镜像 CDN 云存储。

  7. 可自定义注册、登录和忘记密码页面。

  8. Casdoor 支持使用 db 同步方法与现有系统的集成,用户可以顺利过渡到Casdoor 。

  9. Cassdoor 支持主流数据库: MySQL、PostgreSQL、SQL Server 等, 并支持扩展插件的新数据库。

如何工作:

原则

步骤0 (预知)

  1. Cassdoor的授权程序建立在OAuth 2的基础上。 因此,它强烈建议简短地审视OAuth 2.0 是否真的起作用。 An introduction of OAuth 2.0.

图片

步骤 1 (授权请求)

您的应用程序 (可以是网站或任何) 应该以这种格式 终点/login/oauth/auth/authority的格式创建一个 URL 吗? lient_id=xxx&response_type=代码&redirect_uri=xxx&scope=read&state=xxx 在 URL 中用 Cassdoor 的主机 URL 替换 端点 ,并用您自己的信息替换 xxx

提示

如何填充 xxx 个零件?

  • 对于 client_id: 您可以在每个应用程序下找到它

  • 对于 重定向_uri: 你应该将此设置为你自己的应用程序回调URL, 通过这个信息,Casdoor 可以知道在授权后向哪里发送信息

  • 对于 状态: 您应该用您的应用程序名称填写这个内容

应用程序将与用户说话: "嘿,现在我需要一些资源,我需要你的许可才能拿这些资源。 您想要转到这个URL,为我填写您的用户名和密码吗?

使用正确的URL,您的应用程序将会让用户向此 URL 发起请求, 授权请求 已完成。

步骤2 (授权赠款)

此步骤是直截了当的:用户被重定向到上面的URL,用户应该看到来自Casdoor的登录页面。
通过在登录表单中输入正确的用户名和凭据,Casdoor现在知道用户的身份。 并且即将发送两个关键词: 代码状态 返回第 1 步中设置的回调URL。

用户打开网址并向Cassdoor提供凭据。 城门会说: "寻找好~ 这是我在数据库中知道的用户 (授权应用程序获取 代码状态)。 然后我将使用回调URL发送 代码状态 返回应用程序 (redirect_uri)"

在这两个关键词回到您的申请中,现在已经授予应用程序认证,因此 授权 已经完成。

tip

Cassdoor 也提供第三方登录。在这种情况下,您将不会看到凭据输入页面,而是会看到第三方供应商列表。 您可以使用这些供应商登录到您的应用,而Casto是中间层(中间层)。

步骤3(授权赠款)

在这个步骤中,您的应用程序已经有了来自第2步的代码,并且它将会与种姓说话: "嘿, 现在用户同意给我 代码, 您想检查这个 代码 输出并给我 access_token?

步骤 4 (访问令牌)

在这个步骤中,Casdoor 会回到应用程序: "你知道什么,此 代码 似乎是合法的,你必须是正确的应用程序。 来这里是 访问令牌
与此相关的代码 `, Casdoor 知道它是一个授权的应用程序(第二步中正确用户给予的授权),试图获取 access_token` (稍后将被用来获取更有用的物品)。

步骤5 (访问令牌)

在这个步骤中,您的应用程序说: "很好,刚刚获得了新鲜的 访问权我现在可以使用它从 资源服务器获得更多宝贵的东西!

您的应用程序转向 资源服务器: "Hey buddy, 想检查这个 access_token out? 我从城门里得到了这一点,你想看看这是否是你与城门的正确的吗?

步骤 6 (受保护资源)

Resource Server 回来谈到您的应用程序: "不是坏~ 它似乎就像我在 Cassdoor 中的那个一样。 城门说谁拥有这个 access_token 谁可以拥有这些 受保护的资源 现在,你拿走了!”

这基本上就是Casdoor 如何与您的应用程序一起工作。

提示

Cassdoor 可以同时播放 认证服务器资源服务器 配件,也就是说: Cassdoor 授权我们的应用程序从Cassdoor的数据库获取资源 (例如通常是当前登录用户的信息)。

在线演示

城门

这里是一个由Cassbin部署的在线演示。

全局管理员登录:

  • 用户名: 管理员
  • 密码: 123

Casbin-OA

Casbin-OA是Cassbin web 应用程序之一。 它使用 Casdoor 作为身份验证。

Casnode

Casnode 是Cassbin社区开发的官方论坛。

它使用 Casdoor 作为认证平台并管理成员。

结构

城门包含两个部分:

名称描述语言源代码
前端城门的网页前端界面JavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
后端ResTful API 后端Golang + Beego + SQLhttps://github.com/casdoor/casdoor