Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cookie path not settable using $cookies service #1786

Closed
kgj opened this issue Jan 10, 2013 · 35 comments
Closed

Cookie path not settable using $cookies service #1786

kgj opened this issue Jan 10, 2013 · 35 comments

Comments

@kgj
Copy link

@kgj kgj commented Jan 10, 2013

When using the $cookies service, there is no easy way to set the path of the cookie to match every path on the domain.

On line 3137 of angular.1.0.2.js the path of all cookies created is set as self.baseHref()
When trying to write the same cookie from different paths this results in additional cookies being created due to the different path.

With no facility implemented to pass in a path, the path needs to be hard coded in order to be changed.

alonbardavid added a commit to alonbardavid/angular.js that referenced this issue Apr 20, 2013
$cookieStore service had no way to set cookie attributes (such as expires).
The api for $cookieStore.put and $cookieStore.remove now has a third argument-
options,which allows setting cookie attributes, or deleting cookies under a
specific path.
- to change the path and/or expiration date of a cookie, you can pass an
  options object as the third argument to cookies(name,value).
  the options object can override Path and Expires when adding a value.
  You can pass either path, expires,none or both.
- the path option is checked to be a string and be partial to window.location
  otherwise, the default path is used. (warning is logged)
- the expires option is checked to be a Date and in the future,
  otherwise no expiration is set. (warning is logged)
- you can now delete a cookie on a specific path by calling
  cookie(name,undefined,{path:x})

The $cookie service remains unchanged since supporting cookie attributes
would mean serious backward comptability issues.
Foundations were put in place to make supporting $cookie easier.
GENERIC TEST CHANGE:
To support checking cookie path, all unit-tests now run on path "/karma/tests"
Documentation was updated for both $cookie and $cookieStore with examples.

closes	angular#1786, angular#1320
BREAKING CHANGE: As part of the change, deleting a cookie  now deletes
   cookies set in multiple paths (and duplicate cookies if exists).
   Previously only cookies set in the / path were deleted.
   Since it is not intutive, if this change breaks someones code, it is
   probably as an accidental side-effect.
   It is reasonable to assume that most people actually wanted to delete the
   cookie even if it wasn't set in the same path (since they can see it).
   So while this is a breaking change, it fixes bad behaviour.
   If needed, you can delete the cookie in a specific path using $cookieStore.
@mike-spainhower
Copy link

@mike-spainhower mike-spainhower commented Jun 20, 2013

👍

1 similar comment
@nboltn
Copy link

@nboltn nboltn commented Aug 16, 2013

👍

@jaymes-bearden
Copy link

@jaymes-bearden jaymes-bearden commented Oct 23, 2013

Did this ever get accepted?

@odino
Copy link

@odino odino commented Oct 29, 2013

👍

3 similar comments
@hd-deman
Copy link

@hd-deman hd-deman commented Nov 16, 2013

👍

@derfsubterfuge
Copy link

@derfsubterfuge derfsubterfuge commented Dec 13, 2013

👍

@HNygard
Copy link
Contributor

@HNygard HNygard commented Mar 18, 2014

👍

@andrezero
Copy link

@andrezero andrezero commented Mar 21, 2014

👍

@greengerong
Copy link

@greengerong greengerong commented Apr 2, 2014

We need this feature. +1

@maxtillich
Copy link

@maxtillich maxtillich commented Apr 5, 2014

+1

@petebacondarwin petebacondarwin self-assigned this Apr 9, 2014
@andyhorng
Copy link

@andyhorng andyhorng commented Apr 28, 2014

+1

6 similar comments
@paveleremin
Copy link

@paveleremin paveleremin commented May 14, 2014

+1

@bdelaforest
Copy link

@bdelaforest bdelaforest commented May 15, 2014

+1

@heretge
Copy link
Contributor

@heretge heretge commented May 16, 2014

+1

@WhyNotHugo
Copy link

@WhyNotHugo WhyNotHugo commented May 23, 2014

👍

@krisivanov
Copy link

@krisivanov krisivanov commented Jun 12, 2014

+1

@battlesnake
Copy link

@battlesnake battlesnake commented Jun 16, 2014

+1

@bdelaforest
Copy link

@bdelaforest bdelaforest commented Jun 16, 2014

In the meantime you can use https://github.com/ivpusic/angular-cookie.

example :
ipCookie('cookie_key', data, { path: '/' });

@ansorensen
Copy link

@ansorensen ansorensen commented Jul 1, 2014

+1

@h2non
Copy link

@h2non h2non commented Jul 2, 2014

+1
I've finally used angular-cookie

@Meligy
Copy link

@Meligy Meligy commented Jul 7, 2014

+1

@ajspera
Copy link

@ajspera ajspera commented Aug 11, 2014

To anyone looking to keep all cookie paths the same everywhere, adding <base href="/"> to the head tag of your html will make all cookie paths "/" and accessible at any path.

@chesleybrown
Copy link

@chesleybrown chesleybrown commented Aug 17, 2014

Thank you @ajspera. Can confirm your solution works.

@btford btford removed the gh: issue label Aug 20, 2014
@tenaciousRas
Copy link

@tenaciousRas tenaciousRas commented Oct 14, 2014

Did the documentation get updated? The proposed solution seems like a workaround. It's been a while since I had to use base href on a website. The last time I did I'm pretty sure it was a legacy situation on the server side and we couldn't have used this workaround without piles of money and time to rebuild the backend. Isn't the bug/feature request a better solution overall than the one accepted to close this issue?

@dallasvogels
Copy link

@dallasvogels dallasvogels commented Dec 10, 2014

👍

@FraGoTe
Copy link

@FraGoTe FraGoTe commented Jan 28, 2015

👍

3 similar comments
@afc163
Copy link

@afc163 afc163 commented Feb 2, 2015

👍

@MikeElghali
Copy link

@MikeElghali MikeElghali commented Feb 5, 2015

👍

@simonykq
Copy link

@simonykq simonykq commented Feb 10, 2015

+1

shahata added a commit to shahata/angular.js that referenced this issue Feb 28, 2015
shahata added a commit to shahata/angular.js that referenced this issue Feb 28, 2015
shahata added a commit to shahata/angular.js that referenced this issue Feb 28, 2015
shahata added a commit to shahata/angular.js that referenced this issue Mar 1, 2015
shahata added a commit to shahata/angular.js that referenced this issue Mar 1, 2015
shahata added a commit to shahata/angular.js that referenced this issue Mar 2, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
shahata added a commit to shahata/angular.js that referenced this issue Mar 2, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
shahata added a commit to shahata/angular.js that referenced this issue Mar 2, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
shahata added a commit to shahata/angular.js that referenced this issue Mar 2, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
shahata added a commit to shahata/angular.js that referenced this issue Mar 2, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
@shahata shahata closed this in 92c366d Mar 2, 2015
hansmaad pushed a commit to hansmaad/angular.js that referenced this issue Mar 10, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
netman92 added a commit to netman92/angular.js that referenced this issue Aug 8, 2015
The `put`, `putObject` and `remove` methods now take an options parameter
where you can provide additional options for the cookie value, such as `expires`,
`path`, `domain` and `secure`.

Closes angular#8324
Closes angular#3988
Closes angular#1786
Closes angular#950
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.