* @see http://tools.ietf.org/html/draft-ietf-oauth-v2-20#section-6 * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-20#section-1.5 */ interface IOAuth2RefreshTokens extends IOAuth2Storage { /** * Grant refresh access tokens. * * Retrieve the stored data for the given refresh token. * * Required for OAuth2::GRANT_TYPE_REFRESH_TOKEN. * * @param $refresh_token * Refresh token to be check with. * * @return * An associative array as below, and NULL if the refresh_token is * invalid: * - client_id: Stored client identifier. * - expires: Stored expiration unix timestamp. * - scope: (optional) Stored scope values in space-separated string. * * @see http://tools.ietf.org/html/draft-ietf-oauth-v2-20#section-6 * * @ingroup oauth2_section_6 */ public function getRefreshToken($refresh_token); /** * Take the provided refresh token values and store them somewhere. * * This function should be the storage counterpart to getRefreshToken(). * * If storage fails for some reason, we're not currently checking for * any sort of success/failure, so you should bail out of the script * and provide a descriptive fail message. * * Required for OAuth2::GRANT_TYPE_REFRESH_TOKEN. * * @param $refresh_token * Refresh token to be stored. * @param $client_id * Client identifier to be stored. * @param $expires * expires to be stored. * @param $scope * (optional) Scopes to be stored in space-separated string. * * @ingroup oauth2_section_6 */ public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = NULL); /** * Expire a used refresh token. * * This is not explicitly required in the spec, but is almost implied. * After granting a new refresh token, the old one is no longer useful and * so should be forcibly expired in the data store so it can't be used again. * * If storage fails for some reason, we're not currently checking for * any sort of success/failure, so you should bail out of the script * and provide a descriptive fail message. * * @param $refresh_token * Refresh token to be expirse. * * @ingroup oauth2_section_6 */ public function unsetRefreshToken($refresh_token); }