//----------------------------------------------------------------------- // // Copyright (c) Outercurve Foundation. All rights reserved. // //----------------------------------------------------------------------- namespace DotNetOpenAuth.OAuth.ChannelElements { using System; using System.Collections.Generic; using System.Linq; using System.Text; using Validation; /// /// A token manager for use by a web site in its role as a /// service provider. /// public interface IServiceProviderTokenManager : ITokenManager { /// /// Gets the Consumer description for a given a Consumer Key. /// /// The Consumer Key. /// A description of the consumer. Never null. /// Thrown if the consumer key cannot be found. IConsumerDescription GetConsumer(string consumerKey); /// /// Checks whether a given request token has already been authorized /// by some user for use by the Consumer that requested it. /// /// The Consumer's request token. /// /// True if the request token has already been fully authorized by the user /// who owns the relevant protected resources. False if the token has not yet /// been authorized, has expired or does not exist. /// bool IsRequestTokenAuthorized(string requestToken); /// /// Gets details on the named request token. /// /// The request token. /// A description of the token. Never null. /// Thrown if the token cannot be found. /// /// It is acceptable for implementations to find the token, see that it has expired, /// delete it from the database and then throw , /// or alternatively it can return the expired token anyway and the OAuth channel will /// log and throw the appropriate error. /// IServiceProviderRequestToken GetRequestToken(string token); /// /// Gets details on the named access token. /// /// The access token. /// A description of the token. Never null. /// Thrown if the token cannot be found. /// /// It is acceptable for implementations to find the token, see that it has expired, /// delete it from the database and then throw , /// or alternatively it can return the expired token anyway and the OAuth channel will /// log and throw the appropriate error. /// IServiceProviderAccessToken GetAccessToken(string token); /// /// Persists any changes made to the token. /// /// The token whose properties have been changed. /// /// This library will invoke this method after making a set /// of changes to the token as part of a web request to give the host /// the opportunity to persist those changes to a database. /// Depending on the object persistence framework the host site uses, /// this method MAY not need to do anything (if changes made to the token /// will automatically be saved without any extra handling). /// void UpdateToken(IServiceProviderRequestToken token); } }