Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the domain value for a cookie in Javascript?

Using JavaScript I'd like to get the domain value for a specific cookie.

Is this possible? If so, how?

To clarify: I'm not looking for the value of the cookie. I'm on subdomain.example.com and I need to remove a cookie whose name is known but its domain value is something like .example.com. In short: I'd like to get the value of .example.com.

like image 235
Wabbitseason Avatar asked Jun 02 '10 15:06

Wabbitseason


2 Answers

Sorry, all you get is what you see in document.cookie. The cookie metadata like path, domain and expires are not visible to site code (neither to JavaScript nor to the server-side).

To read a cookie that is being shadowed by a cookie with a more-specific domain or path, the only thing you can do is load a page for which the more-specific cookie is out-of-scope, and read it from there.

If, as you say, you only need to remove a cookie, what you could do is try to remove the cookie at every possible level of specificity, eg.:

    document.cookie= 'foo=;domain=sub.domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';

and similarly with the path variable. You could put this in a nested loop for each path and domain part, splitting on . for the domain and / for the path.

like image 111
bobince Avatar answered Oct 19 '22 21:10

bobince


You can only access cookies from the same domain (this includes subdomains). Obviously doing otherwise would be a security concern.

like image 38
Josh Stodola Avatar answered Oct 19 '22 21:10

Josh Stodola