http:403尝试使用google个人资料图片

时间:2016-11-13 03:00:01

标签: javascript html image google-signin

大家好我想在我的网站和其他网站上加载谷歌个人资料图片

我已经完成了

var profile = googleUser.getBasicProfile();
profile.getImageUrl()

当我使用google登录并将图片网址保存到数据库但是当我尝试将其放入img标记的scr中时这样

var img = document.createElement("img");
img.src = image;
img.alt = "image";
img.style.float = "left";
divn.appendChild(img);

我有时会遇到403禁止错误,但有时会有效 这是一个示例链接,我使用存储在数据库中的那个只是改变了一点

https://lh4.googleusercontent.com/-OmV9386WzGk/AAAAFFFFAAI/AAAAAAAACpc/BEtVNh85tnk/s96-c/photo.jpg

所以我只是想知道我是否正确地获取了个人资料图片,而且其他用户也在同一页面上

6 个答案:

答案 0 :(得分:36)

使用referrerpolicy="no-referrer"似乎有帮助。尽管它在localhost应用程序中不起作用(在添加此属性之前),但在将图像加载到其自己的选项卡中时,它始终有效。请求标头中的差异之一是缺少referer

答案 1 :(得分:1)

我可以想象每次请求时都会动态创建URL。这得到了以下事实的支持:用户需要通过身份验证才能检索that URL。 (如果用户例如退出先前授权的服务/撤销认证,则服务应该不再能够检索个人资料图片)

因此,您要么将整个图像存储为数据库中的blob,要么每次都使用用户对象进行身份验证和请求URL。

另外,请考虑使用引用here的API。

答案 2 :(得分:0)

我在未提及任何协议的情况下访问localhost时遇到此错误。如果您的图片未加载,请尝试重新打开网站,输入http://或https:// 那应该可以解决问题

答案 3 :(得分:0)

当Referer标头设置为localhost时,看起来google无法处理请求。 我在检查页面中将其更改为其他域,然后再次发送并生效。 我什至可以得到带有curl和零标题的个人资料图片。

答案 4 :(得分:0)

2021 年同样的问题

如果您在浏览器(chrome)上使用 CORS 插件,请将其关闭。

关闭插件后,重新启动浏览器并重试。

...它对我有用!

答案 5 :(得分:-1)

发回的链接不是动态的。例如,我的个人资料照片是这样的:

https://lh3.googleusercontent.com/a-/AAuE7mB9nRJ8QQy4bJ97P2zeqX_5u7bVuS_DzxOsV0u6rlc

即使在隐身标签页中,也可以在注销状态下看到我的照片。