V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Casbin
V2EX  ›  分享创造

Casdoor: 具有 Web UI 界面的开源身份认证、单点登录平台,支持 GitHub、Gitee、QQ、微信、钉钉登录等

  •  
  •   Casbin · 2021-09-23 15:24:06 +08:00 · 247828 次点击
    这是一个创建于 1155 天前的主题,其中的信息可能已经有所发展或是发生改变。

    UI 优先的统一身份认证系统 Casdoor

    Casdoor 是什么?

    Casdoor 是一个基于 OAuth 2.0 / OIDC 的 UI 优先集中认证 / 单点登录 (SSO) 平台,简单点说,就是 Casdoor 可以帮你解决 用户管理 的难题,你无需开发用户登录注册等与用户鉴权相关的一系列功能,只需几个步骤,简单配置,与你的主应用配合,便可完全托管你的用户模块,简单省心,功能强大。

    仓库地址: https://github.com/casbin/casdoor

    演示地址: https://door.casbin.com/

    官网文档: https://casdoor.org/

    Casdoor 目前作为 Casbin 社区项目统一使用的鉴权平台,项目已开源,希望得到大家的一些建议和 Star~,我们会及时跟进反馈并改正问题哒。

    为什么要用 Casdoor ?

    用户管理一直是项目中非常令人头疼的一个问题,不仅要确保安全性,功能是否完整,方便使用也十分重要。目前大多数应用已从过去单一的账号密码登录,逐渐升级为允许通过第三方平台登录,例如 GitHub 、微信、QQ 等。但是这一套逻辑依然需要开发者去实现,大多数功能偏离了业务。

    Casdoor 就是替开发者们解决这个难题,即 提供一套统一的鉴权平台,只需要简单配置便可完全托管用户模块

    使用的理由也非常简单,总结概括为三句话:

    • 功能完备,操作简单。作为一个需要完全托管用户模块的项目,功能完备必不可少,Casdoor 支持常见用户模块所需要的各种功能。并且配置简单,上手难度低。
    • 开源可控,社区活跃。能否快速得到社区的反馈,解决实际应用中出现的问题也十分重要,否则出了 Bug 没人管岂不是尴尬? Casdoor 有自己的讨论社区 Casnode,也有 QQ 群,均可及时活跃地解决实际应用中的问题。
    • 性能强大,耦合良好。采用 Golang 开发,并发性支持良好,并且内部模块耦合度低,代码易懂,热插拔性好。

    Casdoor 又有哪些特性?

    • 支持普通的账户密码注册登录,也支持各种常见的第三方认证,例如 GitHub 、Facebook 、Google 、Wechat 、QQ 、LinkedIn 等等,截止目前共 9 个平台,并在不断听取用户建议对更多的平台提供支持。
    • 管理方便。Casdoor 内部将模块分为了 5 大类,Organization 、User 、Application 、Token 和 Provider 。可以同时接入多个组织,组织下有不同应用,用户可以通过应用或组织分类,单独管理任何组织、应用或用户的 Token 令牌,轻松管理复杂系统,目前已部署在 Casbin 社区各种系统当作鉴权平台。
    • 自定义程度高。Casdoor 可以随意修改登录方式,例如是否允许密码或第三方登录,自定义应用的注册项数量,是否启用两步验证,以及是否允许各个 Provider 登录、注册等等,高度可插拔。
    • 具备 Swagger API 文档。清晰的 API 介绍,无需阅读源代码即可直接方便调用各个 API 接口,提供定制化功能。
    • 前后端分离架构,部署简单。作为统一认证平台,除了性能,稳定性,新特性之外,易用性也是考量的重要标准,Casdoor 后端使用 Golang 语言开发,前端使用 React.js 框架,使用者只需启动后端服务,并将前端工程文件打包,即可直接使用,操作简单,上手难度低。
    • ...

    总结

    我们希望 Casdoor 能帮助广大开发者们解决用户管理的难题,更专注主要业务,提高开发效率。

    同时作为一个开源项目,我们也非常希望获得大家的使用建议,帮助我们更好地改善项目质量,从功能、易用性等方面更好地满足大家的需求。

    如果使用过程中有任何疑问,欢迎加入社区 QQ 群交流,提 Issues 。当然,提 PR 也是十分欢迎的!

    • QQ 群:645200447

    355 条回复    2024-11-20 09:21:34 +08:00
    1  2  3  4  
    podel
        101
    podel  
       2022-02-21 16:19:32 +08:00
    自动动手支持了 SubMail 的 SMS 服务。能合并到你们开发主干分支不?
    Casbin
        102
    Casbin  
    OP
       2022-02-21 17:06:23 +08:00
    @podel 没问题,可以提 PR 到这里: https://github.com/casdoor/go-sms-sender
    iiusky
        103
    iiusky  
       2022-02-22 14:26:17 +08:00
    @Casbin 有相关具体的文档教程吗?我好像没看到
    Casbin
        104
    Casbin  
    OP
       2022-02-22 14:51:00 +08:00
    iiusky
        105
    iiusky  
       2022-02-22 14:52:27 +08:00
    @Casbin 好的麻烦了~我在研究研究 刚用你们的 casbin 自己撸了一套
    adoal
        106
    adoal  
       2022-02-28 23:33:04 +08:00 via iPhone
    看到这名字我第一反应是支持 CAS 协议…
    Drumming
        107
    Drumming  
       2022-03-02 16:29:20 +08:00
    https://console.cloud.tencent.com/ciam
    和腾讯云的这个产品好像功能类似
    Casbin
        108
    Casbin  
    OP
       2022-03-07 18:36:04 +08:00
    @iiusky Casdoor 与 Casbin 配合使用,效果更佳哈~
    Casbin
        109
    Casbin  
    OP
       2022-03-07 18:37:34 +08:00
    @adoal 未来可以支持哈~
    @Drumming 开源产品自主可控更好些
    QuinceyWu
        110
    QuinceyWu  
       2022-03-09 13:09:23 +08:00
    可以考虑下微软的 sso 接入
    Casbin
        111
    Casbin  
    OP
       2022-03-09 17:39:30 +08:00
    @QuinceyWu 现在就支持 AAD 登录呢~ https://door.casdoor.com/login

    <img src="" />
    QuinceyWu
        112
    QuinceyWu  
       2022-03-09 17:46:41 +08:00
    @Casbin 抱歉 请原谅我仔细阅读
    iiusky
        113
    iiusky  
       2022-03-13 17:12:19 +08:00
    我搭建后发现个问题,普通用户居然也能登录 casdoor 的管理后台(或者说你们的 casdoor 没有前后台之分),而且能看到所以用户、组织等信息。。这符合。。。真实业务?
    Casbin
        114
    Casbin  
    OP
       2022-03-13 19:10:49 +08:00
    @iiusky 你可能搞错了,built-in 组织下的所有用户都是“全局管理员”,见文档: https://casdoor.org/zh/docs/basic/core-concepts/#%E7%94%A8%E6%88%B7
    iiusky
        115
    iiusky  
       2022-03-14 09:36:32 +08:00
    @Casbin 原来是这样 Org
    Hawy
        116
    Hawy  
       2022-03-15 19:22:21 +08:00 via iPhone
    请问身份验证和鉴权服务有办法分离吗?想单独使用鉴权服务
    Casbin
        117
    Casbin  
    OP
       2022-03-15 19:48:28 +08:00   ❤️ 1
    @Hawy 权限服务可以直接使用 Casbin: https://casbin.org/
    Hawy
        118
    Hawy  
       2022-03-16 12:22:01 +08:00 via iPhone
    @Casbin 如果用自建的身份认证服务,用 casdoor 的权限管理功能及界面,是不是只能基于 OAUTH 对接?还有别的方式吗?
    Casbin
        119
    Casbin  
    OP
       2022-03-16 15:35:09 +08:00
    @Hawy 建议同时使用 Casdoor 的身份认证系统,可以实现与权限的深度集成。如果你有旧的账号系统,可以用同步器实现与 Casdoor 的实时双向用户数据同步: https://casdoor.org/docs/user/manipulation/
    Hawy
        120
    Hawy  
       2022-03-16 19:42:59 +08:00
    @Casbin 请问有文档或者例子描述 casdoor 里面如何实现 RBAC ,ABAC ,RESTful 权限模型么?另外是否支持类似于“支持资源角色的 RBAC”这样的 RBAC 变种?
    Hawy
        121
    Hawy  
       2022-03-17 09:47:40 +08:00
    @Casbin 还有一个问题是对无法访问外网的 Air-gapped 环境部署不太友好,docker 镜像里面很多静态资源都在 cdn.casbin.com
    samondlee
        122
    samondlee  
       2022-03-17 10:39:34 +08:00
    已经推荐给 gametools.network 社区使用
    star7th
        123
    star7th  
       2022-03-17 14:40:08 +08:00
    关于 docker 部署生产环境,建议把数据库配置信息做成环境变量。这样的话,我只需要跑一个 docker 容器,然后设置数据库链接环境变量即可访问,而不需要改配置文件。
    star7th
        124
    star7th  
       2022-03-17 15:52:54 +08:00
    已经通过 configmap 解决。其实感觉还是环境变量会更方便一点。毕竟要改的配置不多,做成单项环境变量也挺好。
    Yoehson
        125
    Yoehson  
       2022-03-21 09:22:24 +08:00
    售价如何?
    Casbin
        126
    Casbin  
    OP
       2022-03-21 09:54:06 +08:00
    @Hawy #120 可以加群了解~

    @Hawy #121 可以在 github 提个英文 issue 吗?

    @samondlee #122 感谢推荐,有链接么?

    @star7th #123 现在已经支持环境变量来修改配置信息: https://casdoor.org/docs/basic/server-installation#via-environment-variables

    @Yoehson #125 可以加群了解~
    willgogogo
        127
    willgogogo  
       2022-03-21 09:55:35 +08:00
    基于 CAS 做的?
    Casbin
        128
    Casbin  
    OP
       2022-03-22 14:43:30 +08:00
    @willgogogo #127 只是名字有点像哈,与 CAS 代码层面没有任何关系,但是支持 CAS 认证协议
    samondlee
        129
    samondlee  
       2022-03-25 10:39:47 +08:00
    @Casbin 一个用于替代 bfban.com 的举报系统,不过还没做完 https://bfreport.com/
    dalongs
        130
    dalongs  
       2022-03-29 01:09:40 +08:00
    学习学习
    RangerWolf
        131
    RangerWolf  
       2022-04-02 15:03:37 +08:00
    不知道大佬有什么商业化的打算吗?还是暂时不着急,等以后再说?
    Casbin
        132
    Casbin  
    OP
       2022-04-02 18:59:13 +08:00
    @RangerWolf #131 我们有企业版,可以加群咨询
    axina
        133
    axina  
       2022-04-05 17:29:55 +08:00
    请问下支持 flutter 吗
    zhouchijian
        134
    zhouchijian  
       2022-04-11 16:00:47 +08:00   ❤️ 1
    redisEndpoint 要怎么配置才行?

    redis://:[email protected]:6379

    :[email protected]:6379

    全都报错

    panic: dial tcp: address redis://:[email protected]:6379: too many colons in address
    zhouchijian
        135
    zhouchijian  
       2022-04-11 16:15:24 +08:00
    @zhouchijian 翻了下文档没查到怎么配置 redis 。全局搜了 README 也没查到。。。
    Casbin
        136
    Casbin  
    OP
       2022-04-11 16:39:11 +08:00   ❤️ 1
    @zhouchijian Redis session 是由 Beego 提供的功能,格式也是 Beego 的格式,可查看 Beego 文档: https://beego.vip/docs/module/session.md#saving-provider-config 。例子格式是:127.0.0.1:6379,100,astaxie
    cfu18
        137
    cfu18  
       2022-04-14 11:14:47 +08:00
    @Casbin 试用了一下,casdoor 没有 session 管理吗?看文档,sdk 里用的 Beego 的功能,是每一个应用的服务自己去管理 session ?
    masterclock
        138
    masterclock  
       2022-04-15 21:52:48 +08:00
    试用了一下
    1. 默认的用户密码是明文保存的
    2. 自带的 UI 默认的密码保存方式也是明文
    明文有什么意义呢?
    3. 密码 hash 方式可以修改,但似乎没法改 hash 时的参数
    3. 改了 hash 方式后,原有用户的密码就失效了
    4. 自带的 UI 无法登录非 built-in orgnization 的用户吗?

    总的来说,比较担心,不太敢上船
    Casbin
        139
    Casbin  
    OP
       2022-04-21 09:27:23 +08:00
    @masterclock

    1, 2. 自带的演示站只是演示一个例子,自己部署的时候可以第一时间修改为其他密码保存算法的。默认 Plain 的原因是,方便回头修改为其他方式,如果比如已经用了 bcrypt ,再改成别的 md5-salt 就没有机会了,因为已有的密码不可逆为明文再用另一种形式加密
    3. 在组织编辑页面( https://door.casdoor.com/organizations/casbin )有一项“密码 Salt 值”可以作为参数修改
    4. 那肯定失效了呀,见 2 ,已有密码不可逆为明文
    5. 不同组织的登录地址不同,见文档: https://casdoor.org/zh/docs/basic/core-concepts#application
    hoythan
        140
    hoythan  
       2022-04-25 10:44:44 +08:00   ❤️ 1
    好家伙半年了还能置顶
    C603H6r18Q1mSP9N
        141
    C603H6r18Q1mSP9N  
       2022-05-03 16:24:59 +08:00
    怎么收费的?
    Casbin
        142
    Casbin  
    OP
       2022-05-03 17:23:13 +08:00
    @shanghai1998 #141 可以加群咨询
    xinyana
        143
    xinyana  
       2022-05-22 03:32:48 +08:00 via Android
    好家伙,挖坟啊
    wangxiaoaer
        144
    wangxiaoaer  
       2022-05-23 17:43:15 +08:00 via iPhone
    Casbin
        145
    Casbin  
    OP
       2022-05-24 09:24:35 +08:00
    @wangxiaoaer #144 已回复
    shangrila
        146
    shangrila  
       2022-05-26 08:37:14 +08:00   ❤️ 1
    好家伙半年了还能置顶
    ychost
        147
    ychost  
       2022-05-28 22:25:30 +08:00
    jCasbin 的质量也太差了点,不过 Casbin 的 model 、policy 值得借鉴
    Casbin
        148
    Casbin  
    OP
       2022-05-31 11:43:46 +08:00
    @ychost #147 请问 jCasbin 哪部分有问题呢?欢迎提出宝贵意见建议哈
    veightz
        149
    veightz  
       2022-05-31 16:55:27 +08:00 via iPhone
    先码,逐步把公司的 ldap 换成 Google 中…
    fivesmallq
        150
    fivesmallq  
       2022-05-31 19:21:29 +08:00
    没人吐槽下 RESTful API 吗
    Casbin
        151
    Casbin  
    OP
       2022-05-31 23:42:30 +08:00
    @fivesmallq #150 RESTful API 有什么问题么
    fivesmallq
        152
    fivesmallq  
       2022-06-01 14:18:45 +08:00
    @Casbin API 所有的 url 设计都是 get+post ,path 上全是动词,实际可以使用 http method 来解决,model 好多是复用的,删除的时候也需要传入整个 model 吗?也没有写清楚哪些是必填的,example value 最好有一些真实的数据,会比较直观。response 也是一言难尽,都用的一个,data 和 data2 的作用分别是?

    {
    "data": {},
    "data2": {},
    "msg": "string",
    "name": "string",
    "status": "string",
    "sub": "string"
    }
    fivesmallq
        153
    fivesmallq  
       2022-06-01 14:20:12 +08:00
    建议参考下其他类似 saas 产品 api 的设计,作为一个平台,api 还是挺重要的
    leeggco
        154
    leeggco  
       2022-06-07 10:17:04 +08:00
    按照官方的例子没跑起来

    访问登录页面报错,看不到登录框

    HPM Error occurred while trying to proxy request /api/get-account from 1.116.227.58:7001 to http://localhost:8000 (ECONNREFUSED) ( https://nodejs.org/api/errors.html#errors_common_system_errors)
    Casbin
        155
    Casbin  
    OP
       2022-06-07 14:11:04 +08:00
    leeggco
        156
    leeggco  
       2022-06-07 15:59:39 +08:00
    @Casbin 解决了
    WOLFRAZOR
        157
    WOLFRAZOR  
       2022-06-11 11:22:34 +08:00 via Android
    有没有人机检测?被爆破咋办?
    xuelu520
        158
    xuelu520  
       2022-06-14 16:07:05 +08:00   ❤️ 1
    为啥这个可以一直置顶的?付费的吗?
    Lojii
        159
    Lojii  
       2022-06-18 10:40:28 +08:00
    @xuelu520 我也挺好奇,怎么会置顶这么久
    aec4d
        160
    aec4d  
       2022-06-18 12:23:41 +08:00   ❤️ 1
    求求你不要置顶了,置顶大半年了,成功的引起了我的反感

    这个项目不能说没用,只能说比较难实施

    如果只有一两个内部项目,那么用这种统一认证的方式没必要
    如果一家公司有上百个项目,那么很可能这家公司历史悠久,想要改造接入这种统一认证的推动难度不小
    如果一个小公司,写第一个项目就考虑统一认证,或许这个项目有用。但是它真的需要考虑这么多吗。绝大多数小公司活不过几年,开始的项目以快速实现为主
    一家超大型公司为了统一体验对这种统一认证有比较强的需求,那么别人有几千人的研发团队,有自己的需求。选择一个自己控制不了的项目作为核心接入中间件合理吗?肯定会自己实现
    aec4d
        161
    aec4d  
       2022-06-18 12:27:16 +08:00
    @livid 请问能阻止一下一个帖子置顶快半年多这种操作吗
    aec4d
        162
    aec4d  
       2022-06-18 12:31:56 +08:00   ❤️ 3
    作者要真的这么积极置顶,完全可以买站点的广告位,而不是过几天就让自己的贴子置顶到分享创造栏,看 V2 快十年了,这应该是我见过的唯一一个这种操作的
    Livid
        163
    Livid  
    MOD
       2022-06-18 12:41:08 +08:00   ❤️ 2
    @xuelu520
    @Lojii
    @aec4d

    付费用户可以消耗铜币置顶。

    如果你们 Block 这个账号就不会看到来自他的置顶。
    phithon
        164
    phithon  
       2022-06-19 14:35:34 +08:00
    @Livid 说明置顶该涨价了
    yunweier
        165
    yunweier  
       2022-06-22 13:51:50 +08:00
    可以使用 LDAP 登陆吗?
    renyijiu
        166
    renyijiu  
       2022-06-23 10:09:18 +08:00
    @Casbin demo 的飞书登录报错,提示 请求非法, 请联系应用开发者
    dunizb
        167
    dunizb  
       2022-07-01 20:24:04 +08:00 via Android
    Flutter 支持吗
    Casbin
        168
    Casbin  
    OP
       2022-07-01 21:47:04 +08:00
    @WOLFRAZOR #157 具有默认的 captcha 验证码,也可以对接谷歌 reCaptcha ,hCaptcha 以及国内的阿里云验证码,未来也会支持更多的网易、极验等,也可以自行实现 CaptchaProvider 接口

    @yunweier #165 可以,见文档: https://docs.casdoor.cn/zh/docs/ldap/overview

    @renyijiu #166 飞书开放平台创建的示例 app 过期了,您这边可以自行申请,不影响使用哈

    @dunizb #167 正在支持中 https://github.com/casdoor/casdoor-flutter-sdk
    novolunt
        169
    novolunt  
       2022-07-04 17:55:31 +08:00
    支持 discouse 论坛吗
    Casbin
        170
    Casbin  
    OP
       2022-07-04 22:45:06 +08:00
    lycc
        171
    lycc  
       2022-07-17 16:46:38 +08:00
    如果没有配置有效的密码找回方式,修改 built-in 的密码加密方式的话,会导致管理员都无法登录。
    Zerek
        172
    Zerek  
       2022-07-18 09:52:26 +08:00
    查询用户的 role/permission 的 api 功能都没有完善,这些基础的功能貌似都还没实现完成?
    lankerened
        173
    lankerened  
       2022-07-20 16:02:47 +08:00
    我试用了一下,看起来你们的组织不能自定义用户字段,有解决方案吗
    Aloento
        174
    Aloento  
       2022-07-27 02:08:36 +08:00
    好东西是好东西,但是我还是选择用 identityserver + blazor 自己写一份
    lameleg
        175
    lameleg  
       2022-07-28 13:24:42 +08:00
    https://github.com/labring/sealos 我们正在集成 casdoor 很好用 谢谢 @Casbin
    ljpCN
        176
    ljpCN  
       2022-08-03 23:53:45 +08:00
    有什么业界竞品不?
    ljpCN
        177
    ljpCN  
       2022-08-03 23:58:37 +08:00
    @ljpCN #176 之前看过一个 https://www.authing.cn/ 。不知道 OP 有没有做过什么对比。
    wangxiaoaer
        178
    wangxiaoaer  
       2022-08-07 08:53:12 +08:00 via iPhone   ❤️ 1
    我觉得楼上几个拿置顶说事儿甚至投诉给站长的真是小人之行,你觉得没有 block 了就行,凭什么觉得对别人也没有?起码对我挺有用,我也一直在找这种类似产品,虽然研究了 casdoor 一番后觉得不是很灵活,没有用到生产环境,但是项目的思路 理念还是给了我一些启发。

    作者自己的心血不论好坏,在符合站里规则情况下进行推广有什么好唧唧歪歪的。
    mclxly
        179
    mclxly  
       2022-08-11 09:24:51 +08:00
    近期接触到 casdoor ,感觉不错,给 OP 点赞
    ydatong
        180
    ydatong  
       2022-08-13 15:42:35 +08:00
    6
    p0h5
        181
    p0h5  
       2022-08-14 22:50:24 +08:00 via iPhone
    现在 Oauth 已经对接到 APISIX ,期待 IAM 能做起来
    dcsite
        182
    dcsite  
       2022-08-16 09:39:46 +08:00   ❤️ 1
    @wangxiaoaer 说的对,我现在就 Block 他
    Talbot3
        183
    Talbot3  
       2022-08-19 11:32:27 +08:00
    我源代码编译过,用的还是旧的 golang 版本,还使用了 google 服务的接口。拉代码模块依赖都有问题。能换成 go.mod 么,别依赖 google 服务接口么
    Seahurt
        185
    Seahurt  
       2022-08-22 10:28:39 +08:00   ❤️ 4
    自己部署 bug 太多了...就算用官方的 all-in-one 镜像也启动不起来。好不容易改了代码启动起来了,前端页面又一片空白。学学隔壁 logto 吧, 他们家的使用体验好太多了
    Casbin
        186
    Casbin  
    OP
       2022-08-22 11:23:38 +08:00   ❤️ 1
    @Seahurt 请升级 v1.100.0 ,最近修复了一个相关的问题。建议加我们的 QQ 群,获得更快速的支持:645200447
    jadelike
        187
    jadelike  
       2022-08-26 15:58:05 +08:00
    赞,可惜我司用 springboot
    Casbin
        188
    Casbin  
    OP
       2022-08-26 22:13:54 +08:00
    @jadelike 支持 Spring Boot, Spring Cloud 全家桶: https://casdoor.cn/zh/docs/integration/spring-boot
    tikazyq
        189
    tikazyq  
       2022-09-19 18:05:46 +08:00
    收费么?
    Casbin
        190
    Casbin  
    OP
       2022-09-19 18:06:48 +08:00
    @tikazyq 开源、免费商用
    hanyuwei70
        191
    hanyuwei70  
       2022-09-21 20:39:15 +08:00
    支持 WebAuthn Password-less ,点赞
    electronic
        192
    electronic  
       2022-09-26 21:09:09 +08:00 via Android
    微信可以不扫码登陆吗
    aec4d
        193
    aec4d  
       2022-09-27 17:47:51 +08:00
    大兄弟,置顶一年啦
    yuyu01
        194
    yuyu01  
       2022-09-28 16:19:59 +08:00
    demo 把别人的 ip 暴露出来了,可以清理一下吗?
    yuyu01
        195
    yuyu01  
       2022-09-28 16:51:53 +08:00
    你们的 demo ,至少把别人扫码登录的用户名和 ip 打一下码吧,这样把别人的用户和 ip 都暴露出来真的好吗?扫个码登录体验一下,发现信息全部暴露在上面了,加 qq 群请求处理也没人回复!真的很无语!
    yuyu01
        196
    yuyu01  
       2022-09-29 11:25:11 +08:00
    上面说的问题,已经通过联系 qq 管理员清理相关记录
    idblife
        197
    idblife  
       2022-10-10 10:25:59 +08:00
    看了下文档,支持 ldap ,不支持 ad 域控?
    waltcow
        198
    waltcow  
       2022-10-11 09:36:47 +08:00   ❤️ 4
    好家伙还能置顶这么久,服了
    binjoo
        199
    binjoo  
       2022-10-12 16:33:51 +08:00
    哪怕是有新功能你再置顶一次也有看头。。
    搞多了就是牛皮藓的感觉,B 了。
    wangxiaoaer
        200
    wangxiaoaer  
       2022-10-24 13:43:53 +08:00
    有没有基于 Java 类似的产品?
    1  2  3  4  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:09 · PVG 20:09 · LAX 04:09 · JFK 07:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.