DApp(PC Web)-Anchor协议
扫码登录
dapp
生成一个
uuid
作为房间号(WSS地址例如:wss://fwd.aplink.app/f7693a09-e038-4c9e-8583-f70638cd67cc),放在二维码信息里,然后aplink可以通过二维码获取到。aplink登录签名信息会通过此房间号把签名信息返回给dapp,完成登录。
二维码信息如下:
aplink
通过扫码获上到上面信息,然后生成
登录
交易信息去签名。放在sig
里aplink 会随机生成钱包地址,作为sessionID,以便查找。放在
link_key
里aplink 也会随机生成一个
uuid
,后面通信通道。这个通信方式不是wss协议,而是https协议。放在link_ch
里返回给dapp的数据如下:
sig
的签名内容如下:(仿制的交易,并不会广播。只做签名
)aplink会生成下面信息去签名。dapp会也生成下面信息去验证签名。
发起交易
dapp
再次随机生成一个
uuid
,用来接收交易返回信息,也可能是错误处理信息。发起
https
请求,把esr
信息(包含uuid)发给aplink
。https
请求的地址就是上面的link_ch
,这是个固定通道。aplink也会用这个通道接收信息。esr信息如下:
aplink
接收上面
esr
信息,解析生成交易,并签名。然后通过https
请求带过来的callback
通道把签名与其它信息发送给dapp。发送的信息如下
link_ch
与link_key
只要session没有重链,是不会变的。
侦听退出登录
这是后面开发的一个功能,如果实现?
用sessionId
即上面的link_key
创建一个通道。然后aplink与dapp都侦听这个通道,如果aplink主动退出,则发出APPREMOVESESSION
信息。如果dapp主动退出,则发出REMOVESESSION
信息。两边相互接收对方信息,接收到就会触发退出登录操作。
对于dapp只需增加对aplink的侦听:
注意:事件是在session对象上,非link对象
总结
每次交易都会用不同的
uuid
通信,这也是为了安全考虑,防止信息被侦听窃取。这是记住session方式,还有一种方式是每次都要扫码,但没开启。
dapp发起请求是通过
https
发送到https://fwd.aplink.app
服务器,然后由服务器再通过wss
发送信息到aplink。aplink通过侦听wss获取信息并处理。通信息服务器
https://fwd.aplink.app
由dapp确定。但必需要有相应功能。
最后更新于