首页 / 浏览问题 / WebGIS / 问题详情
本地项目中如何获取iporta当前登录l的用户名和密码
14EXP 2023年07月11日
我想要在本地项目中获取iporta当前登录l的用户名和密码,在手册中没有找到相关信息

1个回答

您好,您可以对onlineUserList 资源构造GET 请求来获取 iPortal在线用户数列表资源,出于安全考虑是无法直接查询到密码的。具体请求参数可以参考:

3,143EXP 2023年07月11日
但是这样的话获取到的用户密码是加密过后的吧,如何能拿到真实的呢,或者其实最终需求是查到当前登录用户申请的token信息
没办法拿到未加密的密码,如果可以直接调用接口就拿到密码,那么产品的安全性完全没法保障。
那么是否有办法在本地项目中动态获取到当前登录用户的token呢
不可以哈,token的获取必须提供用户密码。
那这个不就成死循环了吗,

1.我本地iearth项目要做保存场景的功能,需要绑定用户信息,就需要调web/config/userprofile.json加token的接口来获取用户信息,首先要获取当前登录用户的token,
2.因为现在遇到的问题是,我的token是在iportal平台上获取的固定的令牌,把token写死到项目中,那么其他成员创建的场景就无法自己查看,只能使用申请token的那个账户查看

 那么这个功能应该怎么来实现呢
其他成员创建的时候都不清楚自己的用户密码吗?那他登录查看的时候怎么登录呢?那这样的话任何人都可以控制iportal,这种使用场景就很不合理。如果其他成员都不清楚自己的用户密码就要可以查看场景,只能把场景设置公开,不需要登录就可以查看。如果已知用户密码可以通过页面输入账户密码动态获取对应用户的token进行保存。
保存的时候登录的用户是不固定的,本地环境创建了多个用户,现在是其他用户使用ip访问admin的服务器来操作,需求就是b用户创建的场景只有b和管理员能看到,c用户创建的只有c和管理员能看到,这样的逻辑,这样的逻辑其实应该也是合理的吧

现在保存场景的时候并不能设置是否公开,只有查看场景列表的时候才能设置,所以b用户或者c用户创建之后就找不到刚保存的场景了

这个创建场景的三维地球是我们下载github上的iearth开源代码,扩展开发的,里面没写这个功能,所以遇到了这样的问题

您这边有对应解决方案吗
还有一个问题,当前登录用户名称我们在本地项目中可以拿到吗
我说的不合理的地方在于需要在不清楚用户密码的情况下保存场景到对应用户下,而不是不同用户保存不同场景。如果已知需要保存的用户密码,是可以动态获取token的,设置不同用的token就可以保存到不同用户。
但是保存场景的时候前提是要获取我当前登录的用户信息,来查询不同的token,因为当前登录用户不是一成不变的,我总不能把用户名和密码写死到项目中
不用啊,可以设置输入框,在保存时候用户输入用户密码,调用获取token的接口获取对应用户的token,然后用这个token去保存场景,就和iportal获取令牌的页面类似。
你项目和iportal是两个工程,项目本身是没有iportal登录状态的,是没有办法获取当前登录的用户的,只能获取在线用户。
但是这样不行啊,已经登录过iportal了,在保存场景页面再输一次账号密码,不就很多余吗
咦,你们原有的那个iearth跟iportal也是两个不同的项目吧,就是iearth是独立的
有类似的方法可以分享吗
三维场景是iportal的一个功能,不能算两个项目。iportal在保存场景时是通过携带cookie的方式实现把场景保存到当前登录用户,本地项目和iportal端口不一样使用cookie会跨域。
那我们是否可以通过代理的方式来解决这个跨域的问题呢

cookie只能同域使用,这个是浏览器限制与我们产品无关,解决该问题您可以百度相关博客,例如:imagehttps://blog.csdn.net/weixin_30478619/article/details/99227953

...