/// <summary> /// Refreshes an access token by expiring the existing tokens and creating a new appauthorization entry /// TODO: allow expiration dates /// </summary> /// <param name="appAuth"></param> /// <returns></returns> public static AppAuthorization AccessTokenRefresh(AppAuthorization appAuth) { // expire previous token using(AuthorizationDataContext oauthDataCtxt = new AuthorizationDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["OAuthDb"].ConnectionString)) { /// expire old auth var oldAppAuth = oauthDataCtxt.AppAuthorizations.First( a => a.Id == appAuth.Id); oldAppAuth.AuthTokenExpiration = DateTime.UtcNow; oldAppAuth.RefreshTokenExpiration = DateTime.UtcNow; // create new auth var newAppAuth = new AppAuthorization() { AppId = appAuth.AppId, UserId = appAuth.UserId, Scope = appAuth.Scope, AuthToken = GenerateToken(), RefreshToken = GenerateToken(), Created = DateTime.UtcNow }; oauthDataCtxt.AppAuthorizations.InsertOnSubmit(newAppAuth); oauthDataCtxt.SubmitChanges(); return newAppAuth as AppAuthorization; } }
partial void DeleteAppAuthorization(AppAuthorization instance);
partial void UpdateAppAuthorization(AppAuthorization instance);
partial void InsertAppAuthorization(AppAuthorization instance);
private void detach_AppAuthorizations(AppAuthorization entity) { this.SendPropertyChanging(); entity.User = null; }
private void attach_AppAuthorizations(AppAuthorization entity) { this.SendPropertyChanging(); entity.Application = this; }