ArcBlock / did-connect

DIDConnect components & DIDConnect SDK & DIDConnect Spec
6 stars 0 forks source link

[Discuss] 使用 @did-connect/sdk 来代替 @arcblock/did-auth #1

Closed LancelotLewis closed 2 years ago

LancelotLewis commented 2 years ago

当前 @blocklet/sdk/lib/wallet-handler@arcblock/did-auth 承担了在后端中编写 did-connect 的作用。随着 did-connect 发展出独立的前端组件库,did-connect 后端部分也应该与时俱进,拥有一个自己的 SDK。

在目前,@blocklet/sdk/lib/wallet-handler@arcblock/did-auth 和 express 有强绑定的关系,这样也限制了后端部分使用其他框架的可能性(如 koa,Fastify,nextjs 等)

顺藤摸瓜看了下 wallet-handler 部分的代码,发现了以下的路由绑定:(asset-chain/did/did-auth/lib/handlers/wallet.js) image

简单来看,它给 express 的实例挂载了 6 个路由,如果将这 6 个路由对应的方法直接返回,而不是以绑定 express 路由的形式出现,这样是不是能够从外部调用的代码直接获取到对应的 6 个函数,再有外部代码进行封装绑定路由即可,这样一来,应该能比较轻松的实现扩展至 koa 和 fastify 等后端框架。

但对于 nextjs,sveltekit 这类后端使用的是类似于 serverless 方法的仍然不友好。再进一步设想,抛弃使用类的方案,采用类似于 react hooks 的纯函数形式,使逻辑与数据状态分离,这样貌似能够解决所有问题了。

wangshijun commented 2 years ago
Screen Shot 2022-07-18 at 05 51 02