mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-10-06 11:16:10 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Summary: Previously, we would only refresh Google OAuth2 access tokens at the beginning of the sync loop, and _only_ if the access token had already expired. This meant that if an access token expired in the middle of a sync loop iteration, the user would get prompted with the reauth red box for their account and would have to either go through the oauth flow again or restart the app for sync to continue. This diff makes two changes: 1. Adds 5min of padding to the refresh window, so if a token will expire in <5min, we'll go ahead and refresh the token. This will reduce the possibility that an access token can expire during a sync loop iteration. 2. Catches Invalid Credentials IMAPAuthenticationErrors for Gmail accounts and forces a token refresh on the next sync loop. These should prevent a user from _ever_ having to reauth their Gmail account unless the refresh token is revoked, or we encounter some other permanent error trying to refresh the token. Fixes T7775 (at least some cases) Test Plan: manual Reviewers: khamidou, evan, juan Reviewed By: juan Maniphest Tasks: T7775, T7755 Differential Revision: https://phab.nylas.com/D3908 |
||
---|---|---|
.ebextensions | ||
arclib | ||
migrations | ||
packages | ||
scripts | ||
.arcconfig | ||
.arclint | ||
.babelrc | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.tern-project | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-debug-cloud-api.yml | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas Mail
This is a collection of all sync and cloud components required to run N1.
- Cloud API: The cloud-based auth and metadata APIs for N1
- Cloud Core: Shared code used in all remote cloud services
- Cloud Workers: Cloud workers for services like send later
- Isomorphic Core: Shared code across local client and cloud servers
- Local Sync: The local mailsync engine integreated in Nylas Mail
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repository. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
- Install Homebrew
- Install NVM
brew install nvm
- Install Node 6 via NVM:
nvm install 6
- Install Redis locally
brew install redis
New Computer (Linux - Debian/Ubuntu):
- Install Node 6+ via NodeSource (trusted):
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- Install Redis locally
sudo apt-get install -y redis-server redis-tools
benefit of letting us use subdomains.