ArcBlock / did-connect

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

[BUG] switch DID 现在相当于logout了,这个体验不好 #56

Closed mave99a closed 2 years ago

mave99a commented 2 years ago

🐛 Bug Report

详细描述

视频的过程: https://share.descript.com/view/wuVkASLJDSP

复现这个bug

截图或报错信息(可选)

异常的行为

期望的行为

可能的解决方案(可选)

wangshijun commented 2 years ago

logout 之后应该自动弹出新的 connect 界面,需要 fix 下, @donotlb 可能需要在 ux 的 SessionManager 里面改进

donotlb commented 2 years ago

logout 之后应该自动弹出新的 connect 界面

有个问题,logout 后的行为是否应该由应用层自己决定? 实际上 SessionManager 也已经暴露了一个 logout prop

比如 Store 的两个场景:

  1. blocklet 详情页, logout 后应该不需要弹出 did connect? (这个页面本身不需要认证就能访问)
  2. dashboard 中,logout 后 Store 的现在的行为是自动跳转到首页 (这里如果是自动弹出 connect 界面应该没问题)
donotlb commented 2 years ago

logout 之后应该自动弹出新的 connect 界面

我的理解是, 切换 DID 功能 应该包含 2 个步骤:

  1. 清空 session (相当于 logout)
  2. 自动弹出 DID Connect (以便用户使用其它 DID 帐户登录)

这里有个问题,第 1 步执行后,session 状态会立即体现到 session context 中,从而触发我们应用中现有的一些跳转逻辑,比如 launcher/store,切换 DID 会直接导致跳转到 login 页面(和 logout 表现一样)

image


另外,点击退出登录按钮后,一般会跳转到首页或登录页面,如果用户有切换 DID 的需要,是不是可以直接 logout 再 login ? 这么理解的话,是否可以去掉 "切换 DID" 功能 ?


在老冒这个录屏中还有另一个问题,所处页面是 did comments 应用的 "all comments" 页面,did comments 未认证 状态的 redirect 需要完善一下

wangshijun commented 2 years ago

另外,点击退出登录按钮后,一般会跳转到首页或登录页面,如果用户有切换 DID 的需要,是不是可以直接 logout 再 login ? 这么理解的话,是否可以去掉 "切换 DID" 功能 ?

Logout 和 切换 DID 是不同的,切换 DID 是彻底删除会话的信息,再次 connect 时没有自动链接,在不需要 switchDid 的地方,可以关掉即可(设置 SessionManager 的 switchDid 为 false)

mave99a commented 2 years ago

我理解的切换 就是无缝的,如果没切成功,那么原来的还在。

类似Mac 上switch user, 并不是logout 再 login,万一switch的时候我忘记密码,并不会丢失当前状态

donotlb commented 2 years ago

Logout 和 切换 DID 是不同的,切换 DID 是彻底删除会话的信息,再次 connect 时没有自动链接

我理解的切换 就是无缝的,如果没切成功,那么原来的还在。

结合这两点, 那么 "切换 DID" 需要满足的条件:

其中 "保持当前会话的同时弹出 DID Connect" 似乎 DID Connect 目前不支持这样做,想一下实现思路

wangshijun commented 2 years ago

switch-passport 和 switch-profile 确实是老冒预期的表现, @donotlb 可以顺着老冒的提法探索下如何实现

mave99a commented 2 years ago

如果实现不了的话,我觉得不支持switch DID 也可以的。 就只能sign out,重新sign in

wangshijun commented 2 years ago

v1 和 v2 都更新了