Мои приложения
Приложение
Документация
Обзор
NodeShift Cloud — это OAuth2-провайдер. Вы можете добавить кнопку «Войти через NodeShift» на свой сайт и получить данные пользователя через стандартный OAuth2 Authorization Code Flow.
Быстрый старт
<script src="https://cloud.nodeshift.space/sdk.js"></script>
<div id="nodeshift-btn"></div>
<script>
NodeShiftCloud.init({
clientId: 'YOUR_CLIENT_ID',
redirectUri: 'https://yoursite.com/callback',
scope: 'profile email',
element: '#nodeshift-btn'
});
</script>
# Python пример
import requests
def callback(code, state):
r = requests.post('https://cloud.nodeshift.space/api/cloud/oauth/token', json={
'grant_type': 'authorization_code',
'code': code,
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
'redirect_uri': 'https://yoursite.com/callback'
})
token = r.json()['access_token']
user = requests.get(
'https://cloud.nodeshift.space/api/cloud/oauth/userinfo',
headers={'Authorization': f'Bearer {token}'}
).json()
# user = {'id': 42, 'email': 'user@example.com', 'name': 'Имя'}
return user
OAuth2 Endpoints
1. Авторизация пользователя
GET https://cloud.nodeshift.space/api/cloud/oauth/authorize
?client_id=YOUR_CLIENT_ID
&redirect_uri=https://yoursite.com/callback
&state=RANDOM_STATE
&scope=profile email
Перенаправьте пользователя на этот URL. После входа он будет перенаправлен обратно:
https://yoursite.com/callback?code=AUTH_CODE&state=RANDOM_STATE
2. Обмен кода на токен
POST https://cloud.nodeshift.space/api/cloud/oauth/token
Content-Type: application/json
{
"grant_type": "authorization_code",
"code": "AUTH_CODE",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"redirect_uri": "https://yoursite.com/callback"
}
→ {
"access_token": "TOKEN",
"token_type": "Bearer",
"expires_in": 86400,
"scope": "profile email"
}
3. Получение данных пользователя
GET https://cloud.nodeshift.space/api/cloud/oauth/userinfo
Authorization: Bearer TOKEN
→ {
"id": 42,
"email": "user@example.com",
"email_verified": true,
"name": "Имя пользователя",
"avatar": "https://..."
}
SDK JavaScript
Подключите готовый SDK — он создаёт красивую кнопку и управляет флоу автоматически:
<!-- Подключение -->
<script src="https://cloud.nodeshift.space/sdk.js"></script>
<!-- Инициализация -->
<script>
NodeShiftCloud.init({
clientId: 'YOUR_CLIENT_ID',
redirectUri: 'https://yoursite.com/callback',
scope: 'profile email',
element: '#container', // куда вставить кнопку
theme: 'dark', // 'dark' | 'light'
onSuccess: function(user) {
console.log('Вошёл:', user);
}
});
</script>
Безопасность
• Коды авторизации одноразовые, действуют 10 минут.
• Токены действуют 24 часа.
• client_secret никогда не передаётся в frontend — только server-to-server.
• redirect_uri должен точно совпадать с зарегистрированным.
• Используйте параметр state для защиты от CSRF.