You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ngCookies): support passing path/expires attributes to cookies
$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.
closesangular#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.
0 commit comments