private static async Task SaveAuthToken(AuthState authState, OAuthResult authResult) { var idToken = SessionToken.ParseJwtToken(authResult.id_token); string username = null; var userNameClaim = idToken.Claims.FirstOrDefault(x => x.Type == "upn" || x.Type == "preferred_username"); if (userNameClaim != null) username = userNameClaim.Value; using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.AzureAD2Authority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.access_token, Provider = Settings.AzureAD2Authority, Username = username, }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }
private static async Task SaveAuthToken(AuthState authState, OAuthResult authResult, FacebookUserProfile userProfile) { using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.FacebookAuthority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.access_token, Provider = Settings.FacebookAuthority, Username = userProfile.id, }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }
private static async Task SaveAuthToken(AuthState authState, OAuthResult authResult) { using (var db = new AddInContext()) { var existingToken = await db.SessionTokens.FirstOrDefaultAsync( t => t.Provider == Settings.GoogleAuthority && t.Id == authState.stateKey); if (existingToken != null) { db.SessionTokens.Remove(existingToken); } string username = null; var jwt = SessionToken.ParseJwtToken(authResult.id_token); var emailClaim = jwt.Claims.FirstOrDefault(c => c.Type == "email"); if (emailClaim != null) username = emailClaim.Value; var token = new SessionToken() { Id = authState.stateKey, CreatedOn = DateTime.Now, AccessToken = authResult.access_token, Provider = Settings.GoogleAuthority, Username = username, }; db.SessionTokens.Add(token); await db.SaveChangesAsync(); } }