http:403尝试使用google个人资料pic加载img src时出现禁止错误

JRo*_*wan 9 html javascript image google-signin

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

我已经做好了

var profile = googleUser.getBasicProfile();
profile.getImageUrl()
Run Code Online (Sandbox Code Playgroud)

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

var img = document.createElement("img");
img.src = image;
img.alt = "image";
img.style.float = "left";
divn.appendChild(img);
Run Code Online (Sandbox Code Playgroud)

我有时会得到403禁止错误,但有时它在这里工作的是一个示例链接,我正在使用存储在数据库中的一个只是改变了一点

https://lh4.googleusercontent.com/-OmV9386WzGk/AAAAFFFFAAI/AAAAAAAACpc/BEtVNh85tnk/s96-c/photo.jpg
Run Code Online (Sandbox Code Playgroud)

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

小智 102

添加referrerpolicy="no-referrer"属性

<img src="your-google-link-here" referrerpolicy="no-referrer"/>
Run Code Online (Sandbox Code Playgroud)

在这里查看推荐人政策


小智 46

使用referrerpolicy="no-referrer"似乎有帮助。虽然它在 localhost 应用程序中不起作用(在我添加此属性之前),但在其自己的选项卡中加载图像时,它始终如一地工作。请求标头的区别之一是没有referer.

  • REACT 用户注意:您需要对属性名称进行驼峰式命名:`referrerPolicy="no-referrer"` (16认同)
  • 如果单击答案中的链接,则会转到 IMG 元素的属性列表。只需将 `referrerpolicy="no-referrer"` 添加到使用 googleusercontent.com 的图片元素中 (11认同)
  • 我有同样的问题。在我的代码中,我实际上在哪里“使用”referrerpolicy="no-referrer" ?我在反应中使用 firebase 通过谷歌登录进行登录。感谢您对此的任何帮助! (4认同)

Phi*_*her 14

唯一对我有用的是添加

<meta name="referrer" content="no-referrer" />

head我的html,如下所述:https://github.com/chakra-ui/chakra-ui/issues/5909


小智 6

在没有提到任何协议的情况下访问本地主机时,我收到此错误。如果您的图像未加载,请尝试重新打开网站,输入 http:// 或 https:// 这应该可以解决问题


zol*_*lee 5

当 Referer 标头设置为 localhost 时,Google 似乎不会处理请求。我在检查中将其更改为其他域,重新发送它并且它起作用了。我什至可以获得带有卷曲和零标题的个人资料图片。


Pat*_*ick 1

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

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

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