最近几次碰见一个情况,就是用户反馈,界面数据显示的不对。
我从后台数据库查,应该是没有问题的。可能问题出现于前端的一些处理逻辑上。
现在的问题是,我觉得可能直接登录用户的账号在界面上看,比较好排查问题。
因为用户密码是密文存储的,我不能动。所以我在想,是不是可以开发一个后台功能,点击就可以切换成该用户登录系统,从而更直观的排查问题。
我这个想法不一定好,主要是我觉得可能会有安全风险。
不知道大家有没有遇见过类似的情况,有没有什么好的方式来解决类似的问题?
最近几次碰见一个情况,就是用户反馈,界面数据显示的不对。
我从后台数据库查,应该是没有问题的。可能问题出现于前端的一些处理逻辑上。
现在的问题是,我觉得可能直接登录用户的账号在界面上看,比较好排查问题。
因为用户密码是密文存储的,我不能动。所以我在想,是不是可以开发一个后台功能,点击就可以切换成该用户登录系统,从而更直观的排查问题。
我这个想法不一定好,主要是我觉得可能会有安全风险。
不知道大家有没有遇见过类似的情况,有没有什么好的方式来解决类似的问题?
|
ebingtelMar 10, 2020
1
登录历史里面 记录用户的 cookies……然后 为所欲为
|
|
2
这种功能很常见,叫 Impersonate。比如 gitlab 就有这个
|
|
zhensjokeMar 10, 2020
3
数据库改密码。。。然后自己登陆测试。。之后再改回用户原来的。
如果每个用户加密不一样当我没说。。 |
|
marcomarcoMar 10, 2020
4
复制一份他的数据,到你的测试账号上看
|
|
lishunan246Mar 10, 2020 via Android
5
返回的结果打到日志里,日志没问题就说明是前端的锅。
|
|
ccc825Mar 10, 2020
6
我这是特意写了前置方法,如果请求带了 user_id 就直接按这个 id 的用户登录来读数据
|
|
yhxxMar 10, 2020
7
还有这种操作?
我一直以为这种事情应该靠监控、日志之类的来查。。。 |
|
imhxcMar 10, 2020
8
很正常,大厂一些部门有你说的这种类似的平台。
|
|
9
很正常,叫做 ghostlogin 之类的,比如 laravel 就有个包是专门干这个的 https://github.com/viacreative/sudo-su
但是权限一定得管好,例如要先检测到当前登录的用户是超级管理员,才允许使用 ghostlogin |
|
10
通常不建议直接拿用户账户登录,用户账户及功能应该只有用户本人可以操作,这是对用户的尊重
可以实现一个授权 /邀请功能,用户授权管理员,然后管理员临时变成用户的“影子”登录,并获得用户同样的权限和功能。但执行操作时注意标明是“影子”,而非用户本人 具体实现就很多样化了,核心是验证管理员身份,以及所有功能和权限都是指定用户的“影子” |
|
wangxiaoaerMar 10, 2020 via Android
11
典型的 XY 问题,解决办法不是让用户上传个截图就完事了吗?
|
|
suddenMar 10, 2020
12
这个问题挺可怕的,涉及到隐私了,君子不立危墙之下,建议你不要这样做(领导要求的话当我没说)
|
|
Kr98Mar 10, 2020
13
楼主可以直接看数据库内容,说明用户本身就没有隐私。
只是简单测试用途的话,加一个超级密码,登录逻辑里面多加一个判断。 |
|
imdongMar 11, 2020 via iPhone
15
之前公司内部业务系统,经常有业务员啥的弄错,不会用,而 admin 并没有操作权限,为了方便调试,加过这样的功能。
如果是 admin 登录,就添加特殊的 super 标记,然后可以加载任意部门任意用户,并可以任意切换。 |
|
cassiezhangMay 12, 2020
16
我们公司是做 saas 服务,也碰到了类似的问题,楼主最终选择什么方案呢?
|
|
cassiezhangMay 12, 2020
17
@ccc825 能具体说说么?
|
|
18
@cassiezhang 当时最后选择了自己实现 ghost_login 的方式。
新增了 ghost_login 的接口,当 superadmin 登录时,可访问该接口,跳过用户登录,直接为所选择要切换的用户颁发新的 token (我这里是 JWT 认证方式)。 前端收到请求后,覆盖自己的 token,并在本地标记一个 ghost flag,用于页面显示和一些敏感功能的访问限制。 PS:我在系统配置中增加了开关,打开时才能使用这个接口,用完就关上,也算是一层安全防护吧。 |