diff --git a/CHANGELOG.md b/CHANGELOG.md
index be8ddcde167b9273afa873dd7d5e6ac4122c6b7e..7fb39e8d079c3d411b4575557ece26653723075d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
 ### Changed
 
+- **breaking** PleromaFE login feature relies on `admin` scope presence in PleromaFE token (older versions of PleromaFE don't support it)
 - Moves emoji pack configuration from the main menu to settings tab, redesigns it and fixes bugs
 - `mailerEnabled` must be set to `true` in order to require password reset (password reset currently only works via email)
 - Remove fetching initial data for configuring server settings
diff --git a/src/api/__mocks__/login.js b/src/api/__mocks__/login.js
index 4ce54a8fcbf9d3602f8fdda9e3c017bb86b28267..a980f88b25530ef8b58503c11ebd7122134a2047 100644
--- a/src/api/__mocks__/login.js
+++ b/src/api/__mocks__/login.js
@@ -8,7 +8,7 @@ export async function loginByUsername(username, password, authHost) {
   const verifyHost = user.authHost === authHost
   const data = {
     'token_type': 'Bearer',
-    'scope': 'read write follow',
+    'scope': 'read write follow push admin',
     'refresh_token': 'foo123',
     'me': 'bob',
     'expires_in': 600,
diff --git a/src/api/login.js b/src/api/login.js
index d5ef3b383e42bfc38b48a6ec5c5177136fbb7a36..28421f293afdb423173522688c6de0cbbe713b6c 100644
--- a/src/api/login.js
+++ b/src/api/login.js
@@ -9,7 +9,7 @@ export async function loginByUsername(username, password, authHost) {
     data: {
       client_name: `AdminFE_${Math.random()}`,
       redirect_uris: `${window.location.origin}/oauth-callback`,
-      scopes: 'read write follow'
+      scopes: 'read write follow push admin'
     }
   })
 
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 3c0e996f0be3b01fe9ef2cc7226295916a166036..fbcfbe7c9c53844a6ef1c7c3196149e84538d279 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -41,6 +41,7 @@
       <el-button :loading="loading" class="login-button" type="primary" @click.native.prevent="handleLogin">
         {{ $t('login.logIn') }}
       </el-button>
+      <!-- Note: PleromaFE login feature relies on admin scope presence in PleromaFE token (older versions of PleromaFE don't support it) -->
       <el-button v-if="pleromaFEToken" :loading="loadingPleromaFE" class="login-button" type="primary" @click.native.prevent="handlePleromaFELogin">
         {{ $t('login.logInViaPleromaFE') }}
       </el-button>