Closed LancelotLewis closed 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
在目前,@blocklet/sdk/lib/wallet-handler 与 @arcblock/did-auth 和 express 有强绑定的关系,这样也限制了后端部分使用其他框架的可能性(如 koa,Fastify,nextjs 等)
顺藤摸瓜看了下 wallet-handler 部分的代码,发现了以下的路由绑定:(asset-chain/did/did-auth/lib/handlers/wallet.js)
简单来看,它给 express 的实例挂载了 6 个路由,如果将这 6 个路由对应的方法直接返回,而不是以绑定 express 路由的形式出现,这样是不是能够从外部调用的代码直接获取到对应的 6 个函数,再有外部代码进行封装绑定路由即可,这样一来,应该能比较轻松的实现扩展至 koa 和 fastify 等后端框架。
但对于 nextjs,sveltekit 这类后端使用的是类似于 serverless 方法的仍然不友好。再进一步设想,抛弃使用类的方案,采用类似于 react hooks 的纯函数形式,使逻辑与数据状态分离,这样貌似能够解决所有问题了。
当前
@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)
简单来看,它给 express 的实例挂载了 6 个路由,如果将这 6 个路由对应的方法直接返回,而不是以绑定 express 路由的形式出现,这样是不是能够从外部调用的代码直接获取到对应的 6 个函数,再有外部代码进行封装绑定路由即可,这样一来,应该能比较轻松的实现扩展至 koa 和 fastify 等后端框架。
但对于 nextjs,sveltekit 这类后端使用的是类似于 serverless 方法的仍然不友好。再进一步设想,抛弃使用类的方案,采用类似于 react hooks 的纯函数形式,使逻辑与数据状态分离,这样貌似能够解决所有问题了。