1. A computer-implemented method of allowing user-selected anonymous and pseudonymous access for a user to a relying party (RP), mediated by an identity provider (IdP), comprising: registering with an IdP to establish a first pseudonym; upon successful proof of possession of the first pseudonym to the IdP, receiving a first representation of an access token from the IdP for accessing the RP; transforming, by a processor, the first representation of the access token to obtain a second representation of the access token, the second representation of the access token being a valid access token and is unlinkable to the first representation of the access token by the IdP; receiving a request from the user to access the RP; determining whether the request is for accessing the RP anonymously or pseudonymously; if the request is for anonymous access, providing the second representation of the access token to the RP anonymously; and gaining access to the RP upon verification of the second representation of the access token, the anonymous access being unlinkable to any previous and any future access at the RP, and unlinkable to the IdP's interaction with any particular user; if the request is for pseudonymous access, providing to the RP the second representation of the access token and proof of possession of a second pseudonym that is previously registered with the RP; and gaining access to the RP upon successful verification of the second representation of the access token and proof of possession of the second pseudonym, wherein the pseudonymous access is linkable to the second pseudonym, unlinkable to the IdP's interaction with any particular user, and unlinkable to any past and future access to the RP that does not employ the second pseudonym.
2. The method of claim 1 , wherein receiving the first representation of the access token from the IdP further comprises: generating an original token; modifying the original token to obtain a modified token; and providing the modified token to the IdP to obtain an access token for accessing the RP.