stephen515 发表于 2021-3-29 11:53

前端内置iframe免登录求助

需求: 实现百度营销页面免登录
描述:百度营销和 百度是两个系统,后者有API可以调接口,前者没有API。

已实现: 我后台是用java写的,实现了登录并且获取到了cookies已返回前台,
未实现:如何新打开窗口时可以将cookies带过去实现免登录? 或者在本页面内嵌了一个iframe可以跨域传递cookies吗?

xiaovssha 发表于 2021-3-29 13:12

搜索关键字:带cookie打开浏览器

芊雨千寻 发表于 2021-3-29 13:13

不知道,你是想自动登录还是半自动,自动应该弄不了吧,浏览器你启动才行。
https 没法外挂iframe 或者 模拟请求。
方法1:谷歌浏览器扩展程序,把你获取到的cookies浏览器,通过js设置到浏览器,必须https的。
方法2:
利用这个文件C:\Windows\System32\drivers\etc\hosts,创建一个abc.baidu.com指向本地环境, 访问abc.baidu.com通过 header设置cookies给浏览器,然后跳转到www.baidu.com 正常的百度,不知是否能解决跨域

stephen515 发表于 2021-3-29 13:42

芊雨千寻 发表于 2021-3-29 13:13
不知道,你是想自动登录还是半自动,自动应该弄不了吧,浏览器你启动才行。
https 没法外挂iframe 或者 模 ...

我打开一个页面,点击一个按钮将百度营销账号密码传到后台,后台用java写的 模拟登录反爬虫成功并且获取到了该账号密码登录后的cookies返回了前台, 这时候前端该如何写才能实现免登录的效果?
1、免登录可以是window.open一个新窗口 免登录直接进去
2、如果1实现不了的话 我在该界面内嵌一个iframe 的话,如何实现免登录呢?

你阿曦 发表于 2021-3-31 13:42

document.cookie = `token=${toekn}; Path=/;domain=.XXX.com`   // 这是把cookie作用到域名下function getCookie2() {
var strcookie = document.cookie //获取cookie字符串
var arrcookie = strcookie.split('; ') //分割 //遍历匹配
for (var i = 0; i < arrcookie.length; i++) {
    var arr = arrcookie.split('=')
    if (arr == 'token') {
      return arr
    }
}
return ''
}

var token = getCookie2()

这是在接收页面拿token
页: [1]
查看完整版本: 前端内置iframe免登录求助