iCloud authentication
You can use the v3 Nylas iCloud connector to connect to iCloud accounts, so you can use both the Nylas Email and Calendar APIs. iCloud provides an IMAP email service, and a WebDav/CalDav calendar service.
⚠️ You can allow iCloud users to log in using generic IMAP credentials, but calendar features are not available if they use IMAP. You must both create an iCloud connector and use it for end user authentication to get access to a user's iCloud calendar.
Apple requires an app-specific password when you authenticate iCloud accounts. For more information, see the app passwords documentation.
Before you begin
Before you start authenticating iCloud accounts, make sure you understand how Nylas authenticates in v3. You also need to create at least one Nylas application.
Add an iCloud connector
- In the v3 Dashboard, navigate to the application you want to use iCloud with.
- Click Connectors in the left navigation.
- Find the iCloud item, and click the plus icon (+).
No further connector configuration is required, and iCloud does not require that you request scopes.
Have the user create an app password
Next, direct your end user to the Apple ID log in page and have them log in.
Have them follow the instructions to generate an app-specific password for iCloud. They will use this password when authenticating with your app instead of using their main account password.
🔍 This step must be done manually by the user, as Apple does not provide an API for generating app passwords.
iCloud Hosted authentication
To authenticate your end users' iCloud accounts using Hosted auth, follow these steps:
- Direct your user to create an iCloud app password. This step is required.
- Redirect the user to the Nylas Hosted auth login page by making a
GET /oauth/authorize
request. - Have the end user log in using their iCloud account and the app-specific password they created.
- Complete the auth flow by exchanging a token with the provider. The API response contains the grant ID for the user, which you can use query for their data.
iCloud Custom authentication
To authenticate users with iCloud accounts using Custom authentication, follow these steps:
-
Direct your user to create an iCloud app password. This step is required.
-
Create your custom log in page as you normally would.
-
Make a Custom Auth request and provide the end user's app-specific
username
andpassword
.curl -X POST https://api.us.nylas.com/v3/connect/custom \
--header 'Authorization: Bearer <NYLAS_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"provider": "icloud",
"settings": {"username": "<ICLOUD_EMAIL_ADDRESS>","password": "<ICLOUD_PASSWORD>"
}
}'
Nylas returns a grant ID that you then use in other queries for the user's data.