We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
基于已有的 README.md ,进一步完成 #TODO 事项,并对已有功能作一些探讨、维护和进一步的集成。
README.md
此 issue 聚焦在第一部分:授权模式。其余两部分的内容只做维护而不做任何功能 / 使用方式上的改变和任何已知 / 未知 bug 的修复。
参考:华东师范大学开发者平台 | 授权模式
以下内容,不同的 sdk 是否考虑集成各自语言的 Swagger UI 以供调试呢?
client_id
client_secret
grant_type
username
password
因此,期望将不同 OAuth 模式构造成适配器模式,不同的模式互为不同的 adaptor 。这样,鉴权对外暴露的接口只剩下以下几个:
不同的认证模式可能会走额外的鉴权流程以获取不同额外的鉴权信息,例如 authentic code。这部分方法应该被不同的适配器私有化,通过拦截器实现,并尽可能做好封装(指无需用户指定,自动调用,这部分内容需要讨论)。
/sdk
The text was updated successfully, but these errors were encountered:
这是定位给学校开放平台的 sdk,不是 oauth2 的 sdk,那个在各种语言上已经有实现了,我们没必要重新造轮子。 定位给学校开放平台的 sdk,则核心应该考虑让用户忽略掉 token 管理的过程。 换言,getAccessToken 和 refreshAccessToken 虽然也可以作为开放的接口之一,但重要的部分应该是拿到 token 以后的工作。
这里在 client credentials 部分实现的部分是 callAPI 和 批量同步的深度封装。
而对于后续的 authorization code/password/pkce/device code ,则应该主要考虑认证,也就是直接拿到 userinfo 的信息。考虑对 其他 oauth2 server 协议的兼容,我们可以考虑封装为输出一个 map/dict 作为通用的 userinfo 返回,并另外专门写一个 getECNUUser(这命名好难受)的方法,来返回结构化的用户信息(也就是 /oauth2/userinfo 那个)。
这里不同模式下应该通用的方法可以有 getAccessToken,callAPI。其他的还是和各自的场景有关,很难完全统一(refreshToken勉强多一点),这个封装在一起,还是分开,我觉得可以讨论。但无论如何可能都会和目前的机制产生一些破坏行变更(会吗?),所以可以做一个 sdkv2。
拦截器的实现和 http 的框架有关,这部分 sdk 不应该做,做了就太耦合了。但我们应该在 example 里给出一种主流的 http 框架下拦截器的实现参考,有助于用户快速应用。
Sorry, something went wrong.
No branches or pull requests
背景
基于已有的
README.md
,进一步完成 #TODO 事项,并对已有功能作一些探讨、维护和进一步的集成。此 issue 聚焦在第一部分:授权模式。其余两部分的内容只做维护而不做任何功能 / 使用方式上的改变和任何已知 / 未知 bug 的修复。
授权模式
参考:华东师范大学开发者平台 | 授权模式
计划支持(已实现:√):
设计思路
以下内容,不同的 sdk 是否考虑集成各自语言的 Swagger UI 以供调试呢?
client_id
和client_secret
;类型信息,grant_type
;认证特殊信息,例如资源拥有密码模式下的username
和password
),而不关注具体的认证流程。因此,期望将不同 OAuth 模式构造成适配器模式,不同的模式互为不同的 adaptor 。这样,鉴权对外暴露的接口只剩下以下几个:
如何处理额外的 authentic code 获持?
不同的认证模式可能会走额外的鉴权流程以获取不同额外的鉴权信息,例如 authentic code。这部分方法应该被不同的适配器私有化,通过拦截器实现,并尽可能做好封装(指无需用户指定,自动调用,这部分内容需要讨论)。
接口规范
任务安排
/sdk
部分的鉴权模式The text was updated successfully, but these errors were encountered: