public void DbAccessTokenRepository() { var repo = new DbAccessTokenRepository<AccessToken> (this.connFactory); var token1 = new AccessToken () { ConsumerKey = "anyone", UserName = "******", ExpiryDate = DateTime.Now.AddYears (10), Realm = "tomboy", Token = Guid.NewGuid ().ToString (), TokenSecret = Guid.NewGuid ().ToString (), }; repo.SaveToken (token1); var token2 = repo.GetToken (token1.Token); Assert.AreEqual (token1.ConsumerKey, token2.ConsumerKey); Assert.AreEqual (token1.Realm, token2.Realm); Assert.AreEqual (token1.UserName, token2.UserName); Assert.AreEqual (token1.ExpiryDate, token2.ExpiryDate); // the token is only the first 16 byte = 192 bits - the token is // 160 byte = 920 bits long (due to the padding added) Assert.AreEqual (token1.Token.Substring (0, 24), token2.Token); Assert.AreEqual (token1.TokenSecret, token2.TokenSecret); }
public static IToken ToAccessToken(this DBAccessToken token) { var access_token = new AccessToken(); access_token.ConsumerKey = token.ConsumerKey; access_token.TokenSecret = token.Secret; access_token.Token = token.Token; access_token.Realm = token.Realm; access_token.Roles = token.Roles; access_token.UserName = token.UserName; access_token.ExpiryDate = token.ExpiryDate; return access_token; }
protected IToken GetAccessToken() { // access tokens can be retrieved with gconf once tomboy is setup for syncing // use those paths: // /apps/tomboy/sync/tomboyweb/oauth_token // /apps/tomboy/sync/tomboyweb/oauth_token_secret IToken access_token = new AccessToken (); access_token.ConsumerKey = "anyone"; access_token.Token = "zqkX2sJ0DN2xS2wp7Vjb"; access_token.TokenSecret = "zjhRkTWWFSJCQdZgr61thWD7qDz7z3t7LT3F9mQ7Hxk0cDV0hqF11xcRR38dLVJxX1Qb3lxCcRN5nwXt"; return access_token; }
public OauthSessionProvider(IOauthValueProvider valueProvider) { _valueProvider = valueProvider; var context = new OAuthConsumerContext { ConsumerKey = _valueProvider.ConsumerKey, ConsumerSecret = _valueProvider.ConsumerSecret, SignatureMethod = SignatureMethod.PlainText, UseHeaderForOAuthParameters = true }; _session = new OAuthSession(context, RequestUrl, UserAuthorizeUrl, AccessUrl); var accessToken = new AccessToken { Token = _valueProvider.Token, TokenSecret = _valueProvider.TokenSecret }; _session.AccessToken = accessToken; }
void ApproveRequestForAccess(string tokenString) { DevDefined.OAuth.Storage.Basic.RequestToken requestToken = RequestTokenRepository.GetToken(tokenString); var accessToken = new DevDefined.OAuth.Storage.Basic.AccessToken { ConsumerKey = requestToken.ConsumerKey, Realm = requestToken.Realm, Token = Guid.NewGuid().ToString(), TokenSecret = Guid.NewGuid().ToString(), UserName = HttpContext.Current.User.Identity.Name, //ExpireyDate = DateTime.Now.AddMinutes(1), Roles = new string[] {} }; AccessTokenRepository.SaveToken(accessToken); requestToken.AccessToken = accessToken; RequestTokenRepository.SaveToken(requestToken); }
/// <summary> /// Create an access token using xAuth. /// </summary> /// <param name="context">The context.</param> /// <returns></returns> public IToken CreateAccessToken(IOAuthContext context) { if (context == null) { throw new ArgumentNullException("context"); } var accessToken = new AccessToken { ConsumerKey = context.ConsumerKey, ExpiryDate = DateTime.UtcNow.AddDays(20), Realm = context.Realm, Token = Guid.NewGuid().ToString(), TokenSecret = Guid.NewGuid().ToString(), UserName = Guid.NewGuid().ToString(), }; _accessTokenRepository.SaveToken(accessToken); return accessToken; }
static TokenPrincipal CreatePrincipalFromToken(AccessToken accessToken) { return new TokenPrincipal( new GenericIdentity(accessToken.UserName, "OAuth"), accessToken.Roles, accessToken); }
void ApproveRequestForAccess(string tokenString) { RequestToken requestToken = RequestTokenRepository.GetToken(tokenString); var accessToken = new AccessToken { ConsumerKey = requestToken.ConsumerKey, Realm = requestToken.Realm, Token = Guid.NewGuid().ToString(), TokenSecret = Guid.NewGuid().ToString(), UserName = HttpContext.Current.User.Identity.Name, ExpiryDate = DateTime.Now.AddMinutes(1) }; AccessTokenRepository.SaveToken(accessToken); requestToken.AccessToken = accessToken; requestToken.Verifier = UnguessableGenerator.GenerateUnguessable(); RequestTokenRepository.SaveToken(requestToken); }
public void SaveAccessToken(AccessToken accessToken) { UserSettings.Default.AccessTokenJson = (accessToken == null) ? string.Empty : JsonConvert.SerializeObject(accessToken, Formatting.None); }
public void DbTokenRepository() { var repo = new DbAccessTokenRepository<AccessToken> (); var token1 = new AccessToken () { ConsumerKey = "anyone", UserName = "******", ExpiryDate = DateTime.Now.AddYears (10), Realm = "tomboy", Token = Guid.NewGuid ().ToString (), TokenSecret = Guid.NewGuid ().ToString (), }; repo.SaveToken (token1); var token2 = repo.GetToken (token1.Token); Assert.AreEqual (token1.ConsumerKey, token2.ConsumerKey); Assert.AreEqual (token1.Realm, token2.Realm); Assert.AreEqual (token1.UserName, token2.UserName); Assert.AreEqual (token1.ExpiryDate, token2.ExpiryDate); Assert.AreEqual (token1.Token, token2.Token); Assert.AreEqual (token1.TokenSecret, token2.TokenSecret); }
public void SaveAccessToken(AccessToken accessToken) { _sessionState["access_token"] = accessToken; }
public FixedValueTokenRepository(string requestToken, string requestTokenSecret, string accessToken, string accessTokenSecret) { _requestToken = new RequestToken { Token = requestToken, TokenSecret = requestTokenSecret }; _accessToken = new AccessToken { Token = accessToken, TokenSecret = accessTokenSecret }; }
public void SaveAccessToken(AccessToken accessToken) { throw new NotImplementedException("The access token cannot be altered when using the FixedValueTokenRepository"); }
public ConsumerRequestTests() { context = new OAuthContext {RequestMethod = "POST", RawUri = new Uri("http://localhost/svc")}; consumerContext = new OAuthConsumerContext {ConsumerKey = "key", ConsumerSecret = "secret", SignatureMethod = SignatureMethod.PlainText}; accessToken = new AccessToken(); }
private static void AssertValidAccessToken(AccessToken token) { if (token == null) { throw new MissingTokenException("The access token could not be obtained"); } string expiryDateString = token.ExpiryDateUtc.HasValue ? token.ExpiryDateUtc.ToString() : "n/a"; string usableTimespan = token.SessionTimespan.ToString(); Debug.WriteLine(string.Format("Access token {0} will last for {1} and will expire at {2} UTC.", token.Token, usableTimespan, expiryDateString)); }
private AccessToken GenerateAccessToken(string username, string password, DateTime? expiry = null) { if (!expiry.HasValue) expiry = DateTime.Now.AddYears (99); var rng = new RNGCryptoServiceProvider (); string access_token_secret = rng.Create256BitLowerCaseHexKey (); string token_key = rng.Create256BitLowerCaseHexKey (); // the token is the master key encrypted with the token key string access_token_token; using (var db = connFactory.OpenDbConnection ()) { DBUser user = db.First<DBUser> (u => u.Username == username); string master_key = user.GetPlaintextMasterKey (password).ToHexString (); access_token_token = master_key.EncryptWithKey (token_key, user.MasterKeySalt); } var access_token = new AccessToken () { ConsumerKey = "anyone", Realm = "Rainy", Token = access_token_token, TokenSecret = access_token_secret, UserName = username, ExpiryDate = expiry.Value }; access_token.SetTokenKey (token_key); return access_token; }
public Response DoRequest() { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = Constants.OAuth.ConsumerKey, ConsumerSecret = Constants.OAuth.ConsumerSecret, SignatureMethod = Constants.OAuth.SignatureMethod, }; OAuthSession session = new OAuthSession( consumerContext, Constants.OAuth.RequestTokenURL, Constants.OAuth.AuthorizeURL, Constants.OAuth.AccessTokenURL); string tokenCookie = null; ctx.Request.Cookies.TryGetValue(Constants.Cookies.OAuthTokenCookie, out tokenCookie); string secretCookie = null; ctx.Request.Cookies.TryGetValue(Constants.Cookies.OAuthSecretCookie, out secretCookie); if (!forceReauth && !string.IsNullOrWhiteSpace(tokenCookie) && !string.IsNullOrWhiteSpace(secretCookie)) { AccessToken accessToken = new AccessToken(); accessToken.Token = tokenCookie; accessToken.TokenSecret = secretCookie; session.AccessToken = accessToken; } else { NameValueCollection queryStringParameters = Utilities.GetQueryStringParameters(ctx, new string[] { "oauth_token", "oauth_verifier" }); if (queryStringParameters.Count == 2) { // Re-create the request token from the callback request from Ravelry post-user-authentication. RequestToken requestToken = new RequestToken(); requestToken.Token = queryStringParameters["oauth_token"]; try { // TODO: Ravelry fails to accept the token here. Debugging with them. // Exchange the temporary request token for an access token which can be used to access user data. Uses "GET". IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken, queryStringParameters["oauth_verifier"]); // Save token data to cookies. ctx.Response.AddCookie(new NancyCookie(Constants.Cookies.OAuthTokenCookie, accessToken.Token, true, true)); ctx.Response.AddCookie(new NancyCookie(Constants.Cookies.OAuthSecretCookie, accessToken.TokenSecret, true, true)); } catch (Exception e) { Utilities.SetException(ctx, e); return null; } } else { // Retrieve a request token from Ravelry. session.CallbackUri = new System.Uri(Constants.OAuth.CallbackURL); IToken requestToken = session.GetRequestToken(); // Generate a user authorization URL for the request token. string authorizationLink = session.GetUserAuthorizationUrlForToken( requestToken, Constants.OAuth.CallbackURL); // Redirect to Ravelry. return new RedirectResponse(authorizationLink); } } // Save the session to the context Utilities.SetAuthenticatedSession(ctx, session); return null; }
private AccessToken CreateAccessToken() { var accessToken = new AccessToken() { ConsumerKey = this.consumerKey, Token = this.token, TokenSecret = this.tokenSecret, }; return accessToken; }
public string GetAccessTokenSecret(IOAuthContext context) { AccessToken token = GetAccessToken(context); return(token.TokenSecret); }
private async void UpdateProfil() { await Task.Run(() => { var accessToken = new AccessToken() { ConsumerKey = this.consumerKey, Token = this.token, TokenSecret = this.tokenSecret, }; string responseText = session.Request(accessToken).Get().ForUrl(string.Format("http://wbsapi.withings.net/user?action=getbyuserid&userid={0}", userId)).ToString(); DataContractJsonSerializer sr = new DataContractJsonSerializer(typeof(InternalUser)); Byte[] bytes = Encoding.Unicode.GetBytes(responseText); using (MemoryStream stream = new MemoryStream(bytes)) { InternalUser user = sr.ReadObject(stream) as InternalUser; this.User = new User() { FirstName = user.body.users.First().firstname, LastName = user.body.users.First().lastname, Id = user.body.users.First().id, Gender = (GenderType)user.body.users.First().gender, ShortName = user.body.users.First().shortname, Birthdate = FromUnixTime(user.body.users.First().birthdate), }; } }); }