davinci
davinci copied to clipboard
第三方系统如何集成davinvci,实现免登陆功能,可不可以给个案例,谢谢
@scottsut @MountHuang @qdsang
免登陆目前只能集成分享链接的页面
免登陆目前只能集成分享链接的页面
携带用户token进入系统首页是如何集成到业务系统的呢?有没有案例或者思路
首页可以通过iframe的形式嵌入系统中。系统登录时,存储返回的token,当进入嵌入页面时,将token下发给davinci,这样就可以做到免登陆。因为,davinci的token都是存在locastorage中,所以这种形式可以。
首页可以通过iframe的形式嵌入系统中。系统登录时,存储返回的token,当进入嵌入页面时,将token下发给davinci,这样就可以做到免登陆。因为,davinci的token都是存在locastorage中,所以这种形式可以。
可是,第三方系统生成token算法可davinci的token算法不一样吧,而且第三方的账号是不是必须copy一份到davinci ?;
首页可以通过iframe的形式嵌入系统中。系统登录时,存储返回的token,当进入嵌入页面时,将token下发给davinci,这样就可以做到免登陆。因为,davinci的token都是存在locastorage中,所以这种形式可以。
可是,第三方系统生成token算法可davinci的token算法不一样吧,而且第三方的账号是不是必须copy一份到davinci ?; 我的理解是: 1、业务系统的账号需要添加在davinci数据库(user表)里; 2、davinci 管理员需要为user用户分配权限; 3、用户登录业务系统,携带token进入davinci首页;
自己改源码后重新打包部署,我就是这样的,这样不仅可以把登录去掉,一些不想要的功能和图标页可以去掉,而且可以跟我自己的系统的权限完美结合,因为我只需要一个项目,所以为了少改,peojectId和userId代码和数据库需要的直接写死为1,如
不用回我,我就是今天上来看一下我之前提的bug,看到这个bug,就随便提一嘴,改动不算多,我大概3,4天就改好了,而且不少时间是花在找要改的源码位置
sorry,没理解这段代码 @ziveen
这个是因为我要使用自己系统权限,所以改了权限拦截器AuthenticationInterceptor的处理方法,而我系统的token解析不出他们的user,而 davinci系统的controller接口很多都加了@CurrentUser User user来获取用户,为了少改,所以修改“那段代码”,其他如果报错根据错误解决掉就好了(我印象里也该基本没什么其他大改动) 如果你想把自己的用户id传过去,在AuthenticationInterceptor类里解析出然后set到user的某个字段(我的ID是在字符串,所以加了个字段存放,当然你也可以直接用一些没有用的字段存放),然后 request.setAttribute(Constants.CURRENT_USER, user); 如果你不用自己的token,只是想把登录去掉,那我记得大概只要把前端的校验登录里js干掉后,再把“那段代码”或AuthenticationInterceptor类的set的时候的userId设成1就好了,因为系统guest的id就是1;
还有请不要再回复了,请自己花时间研究源码,谢谢
我实现方式是这样的:1、修改UserLogin类;
2、用户名密码写到application.yml

3、bean注入

4、无需输入用户信息
@这样也能实现免登陆校验;这样有啥缺点吗?@san-lj
个人不建议这么做,因为这样有个最重要的问题:没有权限了,不安全
个人不建议这么做,因为这样有个最重要的问题:没有权限了,不安全
业务系统不需要davinci的权限控制,最好的去掉权限控制
首页可以通过iframe的形式嵌入系统中。系统登录时,存储返回的token,当进入嵌入页面时,将token下发给davinci,这样就可以做到免登陆。因为,davinci的token都是存在locastorage中,所以这种形式可以。
是可以实现的,目前在做的项目里,前端差不多是这么实现
首页可以通过iframe的形式嵌入系统中。系统登录时,存储返回的token,当进入嵌入页面时,将token下发给davinci,这样就可以做到免登陆。因为,davinci的token都是存在locastorage中,所以这种形式可以。
是可以实现的,目前在做的项目里,前端差不多是这么实现
可,业务系统的账号和davinci的账号需要同步呀
davinci很久前就支持标准OAUTH2.0 认证了,只需要在application.yaml里增加配置即可, 包括不限于CAS(对接企业微信扫码)
登录业务系统时在后端同时访问davinci的登录接口(davinci_host_base_url/api/v3/login)(注:需同步业务系统的登录账号密码到davinci的user表中),通过davinci登录接口的返回值拿到davinci的token,然后在iframe集成davinci首页,通过iframe中src(下发模式自己决定,我是通过src="xxxxxx?token=[davinci_token]"这种url params模式)进行下发,同时修改davinci首页鉴权部分(全部通过localStorage存储的)替换掉token即可。