hello everyone I am trying to load google profile picture in my site and other ones
I have done
var profile = googleUser.getBasicProfile();
profile.getImageUrl()
when I sign in with google and save the image url to a database but when I try to put it into the scr of an img tag like so
var img = document.createElement("img");
img.src = image;
img.alt = "image";
img.style.float = "left";
divn.appendChild(img);
I get 403 forbidden error sometimes, but sometimes it works here is a sample link that I'm using the one that is stored in the database just altered a bit
https://lh4.googleusercontent.com/-OmV9386WzGk/AAAAFFFFAAI/AAAAAAAACpc/BEtVNh85tnk/s96-c/photo.jpg
so I'm just wondering if I'm doing it right obtaining the profile image, and its for other users also on the same page
The link sent back is NOT dynamic. For example my profile picture is this one:
And I can see my photo even in an incognito tab and while I am logged off.
I could imagine that the URL is dynamically created each time you request it. That is supported by the fact that the user needs to be authenticated to retrieve that URL. (If the user e.g. signs out of a previously authorized service / revokes the authentication, a service should no longer be able to retrieve the profile picture)
So either you store the entire image as a blob in the database or authenticate and use the User Object each time to request the URL.
Also, consider using the API as referenced here.
Using
referrerpolicy="no-referrer"
seems to help. While it didn't work in a localhost app (before I added this attribute), it worked consistently when loading the image in its own tab. One of the differences in the request headers was the absence ofreferer
.I was getting this error when accessing the localhost without any protocol mentioned. If your images aren't loading, try reopening the website giving http:// or https:// That should solve the issue