[开源] 我和 JAP(JA Plus)的故事

2021-01-20 09:59:14 +08:00
 zhangyadong

JA Plus 故事

程序员的故事如此简单之绕不过去的开源情结

我们准备做一件伟大的事,也可以说是一件真真正正普惠的事。

是的,你没有看错,就是“絮”而非“序”,请允许我絮叨二三。

我们即将要做的,我们认为是一件伟大的事,也可以说是一件真真正正普惠的事。我们要开发一款真真正正国产的并且未来将会走向国际的完全开源的产品 - Just Auth Plus (以下简称 “JAP”)。

JAP 是 JustAuth(以下简称 “JA”) 的升级版。

立项之初,我和我的合伙人之间曾有过激烈的意识层面的碰撞,碰撞的根源就在于开源和商业化之间的根本矛盾。开源如何盈利?不商业化的话,我们如何保持温饱?就算开源了,怎么确保能吸引足够多的优秀的开发者参与共创?

因为我们都是技术出身,也都是热衷于开源事业的技术人,也都对开源有着发自内心的热情,所以,不管多少次的碰撞、争吵,最后都妥协到了这份情结之上。

一、源于此( JA 的起源)

说起 JustAuth 的起源其实很简单,除了源于对技术的热爱,另外一个重要原因就是因为技术人的“懒”。

从 16 年起, 我开始自己开发博客系统,并且集成了 QQ 和微博两个第三方平台的登录功能,在集成其 SDK 时,费了好大功夫去研究源码、查阅文档、测试 API 。最苦恼的就是,因为每个平台的 SDK 规则不一致,所以,同样的功能,必须复制 N 个版本,然后去适配,最终导致的结果就是项目中多出了一大堆冗余的代码。如下:

这是当时集成 QQ 和微博的实现代码。其实,接触的平台多了,自会发现一些问题:

这可以说也算是一个契机。

到了 18 年,当时 QQ 群里除了站长外,还有一些开发者,应这些朋友的要求,我开源了自己的第一个博客系统 OneBlog,随着使用者的增加,以及用户的需求,我准备重新接入第三方登录功能。

但是鉴于之前接入第三方登录时的“阴影”,我也因此萌生了要开发一款开箱即用的 Oauth 登录工具包。这也正是后来 JustAuth “诞生”的最大原因。归根结底,还是因为一个“懒”,因为我不想耗费过多的精力去每个平台翻阅文档,一遍又一遍的复制同样的代码,一遍又一遍的重写同一个功能,最主要的是我知道一定会有很多人碰到了和我一样的问题。

二、行于此( JA 的发展)

JustAuth自开源起, 就备受广大开发者的关注,这一点也是我很欣慰的,因为我知道,我开源的这个工具,起码不是一个“废材”。 细数 JustAuth 的迭代之路,到目前为止,已发布到了v1.15.9 版本,回顾这一年多的路程,确实有一些需要记录的点。

到目前( 2021/1/19 )为止,JA 取得的成绩:

并且还有很多企业也在使用 JA 实现第三方授权登录,不过由于企业方不方便公开所以并未加到列表中。

如果您现在也在使用 JA,并且愿意与我们共享,请提交到如下地址(任选一个):

我们承诺,仅将获取到的信息,用于 JA 官网、项目 Readme 文档或者官方推荐文章中,不会用于其他任何非法、违规或者对用户不利的场景中。

三、愿于此( JA 的未来)

Is that all? No, not enough!

JA 能取得目前的成绩,全靠各位开发者 /组织 /企业 /社区伙伴的支持,我们也在这儿衷心的感谢各位领导、各位朋友以及各位社区内的小伙伴。

虽然 JA 目前的成绩算是挺好,但我们不愿止步于此,不愿意让 JA 仅止步于 “第三方登录”,我们想做的更好,因此我们准备正式立项“JAP”!

JAP 是什么?

JAP 是一款开源的认证中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集成到任何 web 应用程序中,就像集成 JA 一样,简单方便。

JAP 要做的是为所有需要身份认证的应用提供一套标准的解决方案,集成所有 APP 。方便开发者无缝对接任何第三方应用或者自有系统。

JAP 开发背景?

JA 是为了干掉第三方登录,JA Plus 是为了干掉整个登录相关的业务模块。

JAP 有什么特点?

JAP 有什么功能?

JAP 适用于哪些场景?

JAP 常见问题有哪些?

JAP 不支持具体的业务操作吗?

JAP 针对用户、应用等业务数据,只提供标准的业务接口,不提供数据库层面的支持。JAP 要做的是为广大开发者提供一套技术标准,既然是标准,那就不能依赖于任何和具体业务相关的逻辑。不管你们的系统是用的 MySQL 、Oracle 、SQLlite 、Redis 、MongoDB 还是其他的,JAP 通通不关心。JAP 对外提供标准接口,业务端只需要按需实现 JAP 的接口即可,这种设计能在最大程度上增加它的灵活性,使它不受限于某一具体的数据库实现方案。

JAP 可以用到企业级项目吗?

当然,JAP 的价值就在于:方便开发者无缝对接任何第三方应用或者自有系统,提高开发效率,减少代码维护成本。所以对于企业来说,这是一个降本增效的功能。JAP 基于模块化开发,并且不侵入业务系统,可以十分方便的集成到企业内部各个系统或者统一的登录认证网关中。

JAP 可以商用吗?

JAP 基于 LGPL 3.0 协议。商用分为以下两种情况:

四、我们需要什么?

我们的愿景(以开源的方式,受惠于开源社区,赋能于开发者。使之成为开发者生态内必不可少的“基础设施”,以期形成新的技术标准)决定了我们即将要走的这条道路的艰难性无疑是巨大的。

我们不仅仅只是想把这款作品推广到国内众多开发者、组织和企业用户身边,让他们享受开源带来的便利;我们还要把这个作品推向更广阔的空间,推向国际,让更多的开发者、组织和企业了解并真真正正的使用这个项目、受惠于这个项目。

既然我们选择了开源,选择了奉献,选择了这将“一条道走到黑”的路,就需要我们能一直走下去。但开源的路何其漫长、何其孤独,“路漫漫其修远兮,吾将上下而求索”。

我们知道,仅凭我们自己的力量就想推动这个项目发扬光大、普惠开发者还远远不够,我们也深信,只有发挥团队的力量,集思广益,才能打造出一个真正优秀的、真正受欢迎的、真正标榜的能屹立于开源之林的顶尖项目!所以我们需要寻找一些真诚的、志同道合的、靠谱的合作伙伴和战友

就像我在之前直播分享 JustAuth 时(前情回顾:由表入里全面介绍 JustAuth)表达过的一个观点一样:和一群志同道合的朋友一起做一件喜欢的事情,是一种幸福。巧合的是,高瓴资本创始人兼首席执行官张磊也提过类似的观点:高瓴资本张磊:找一帮你喜欢的、真正靠谱的人,一起做有意思的事

是的,我们准备做的这一切,都是源于我们对技术的热爱,对开源的热爱,以及对国内开源事业的热爱。因此,我们也需要找到和我们有相同兴趣、爱好、目标的人来一起完成这件有意义的事。

如果你也对 JAP 感兴趣,请将以下信息发给我们:

发送邮件到:support@fujieid.com

更多详情,请参考链接JAP 文档中心

五、社区相关

我们会高标准、高要求我们的核心社区伙伴。如果你想加入到我们的核心团队中,如果你想参与到 JAP 项目社区,请仔细阅读以下内容:

成员要求

所有成员基本要求

核心成员要求

如果你想成为社区的核心成员,请满足以下条件:

如何成为核心成员

成员福利

基本成员福利

核心成员福利

违规项

社区权力

由核心成员共同拥有。

社区规划

更多详情,请参考链接JAP 文档中心 - 社区相关

JAP 进度

开源故事

插播一条消息,欢迎给 JustAuth 、OneBlog 等项目提交过代码的同学,或者提交过 Issue 的同学投稿 Gitee 的 [开源故事] 专题,投稿地址:

https://gitee.com/gitee-community/opensource-guide/blob/master/%E5%BC%80%E6%BA%90%E6%95%85%E4%BA%8B/%E6%8A%95%E7%A8%BF%E8%AF%B4%E6%98%8E.md

说给我的支持者

在 JAP 开源出来不久,我就被项目评论区的一条留言吸引到:

这位兄弟的一席话,让我很感动。做开源的乐趣大概就在此吧,开源项目作者和开发者之间相互成就。

再次感谢陪我一路走来的诸位朋友!

JAP 开源地址:https://gitee.com/fujieid/jap

1502 次点击
所在节点    开源软件
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/746544

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX