Authentication
AppAPI introduces a distinct method of authentication for external apps. This authentication relies on a shared secret between Nextcloud and the external app
Authentication flow
ExApp sends a request to Nextcloud
Nextcloud passes request to AppAPI
AppAPI validates request (see authentication flow in details)
Request is accepted/rejected
Authentication headers
Each ExApp request to secured API with AppAPIAuth must contain the following headers:
AA-VERSION
- minimal version of the AppAPIEX-APP-ID
- ID of the ExAppEX-APP-VERSION
- version of the ExAppAUTHORIZATION-APP-API
- base64 encodeduserid:secret
Authentication flow in details
AppAPIAuth
AppAPI provides AppAPIAuth
attribute with middleware to validate requests from ExApps.
In your API controllers you can use it as an PHP attribute.
AppAPI session keys
After successful authentication AppAPI sets app_api session key to true
.
$this->session->set('app_api', true);
$this->session->set('app_api_system', true); // deprecated since AppAPI 3.0.0
Note
The Nextcloud server verifies this session key and allows CORS protection and Two-Factor authentication to be bypassed for requests coming from ExApps. Also the rate limit is not applied to requests coming from ExApps.