К основному содержанию
правило

auth0 — правило для Cursor: защита авторизации и установка

Правило для проектов с Auth0: направляет агент к Universal Login и Authorization Code Flow с PKCE. Помогает не закладывать небезопасные схемы входа.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/auth0.mdc
Открыть на GitHub

Что делает auth0

Правило охватывает интеграцию Auth0 во все файлы проекта. Оно советует централизовать вход через Universal Login, а для публичных клиентов — SPA, мобильных и настольных приложений — применять Authorization Code Flow с PKCE. Implicit Grant и Resource Owner Password Grant правило запрещает.

В примерах есть вызов loginWithRedirect из @auth0/auth0-react и обработка callback на Go через github.com/auth0/go-auth0/v2/authentication. Также описано хранение токенов в защищённом месте, например в cookie с флагами HTTP-only и Secure, и проверка соответствия callback URL настройкам Auth0. Для публичного клиента без PKCE правило предлагает пересмотреть схему авторизации.

Какие задачи решает

  • направить вход через Universal Login
  • выбрать поток авторизации для SPA или мобильного приложения
  • не допустить применения Implicit Grant
  • обработать Auth0 callback на Go
  • хранить токены вне клиентского JavaScript

Примеры запросов агенту

  • Проверь авторизацию в проекте с Auth0 и предложи переход на Universal Login.
  • Проверь, использует ли наше SPA Authorization Code Flow с PKCE.
  • Покажи обработчик Auth0 callback на Go и безопасное хранение токенов.

Как установить auth0

Вручную: положить файлы

.cursor/rules/auth0.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о auth0

Как установить auth0 в Cursor?

Добавьте файл правила по пути .cursor/rules/auth0.mdc.

Что делает правило auth0?

Оно задаёт рекомендации по интеграции Auth0: Universal Login для входа и Authorization Code Flow с PKCE для публичных клиентов. Также описывает обработку callback и хранение токенов.

Какой поток Auth0 использовать для SPA?

Правило предписывает Authorization Code Flow с PKCE. Implicit Grant и Resource Owner Password Grant использовать нельзя.

Исходный текст

auth0.mdc · CC0-1.0
---
description: Definitive guidelines for integrating Auth0 securely and efficiently, preventing common identity attacks, and leveraging modern authentication patterns.
globs: **/*
---
# auth0 Best Practices

This guide outlines the definitive best practices for integrating Auth0 into our applications. Adhering to these standards is critical for maintaining a robust security posture against modern identity threats.

## 1. Prioritize Universal Login

Always centralize authentication flows using Auth0 Universal Login. This offloads complex security logic, ensures consistency, and leverages Auth0's built-in security features across all applications (web, mobile, AI agents).

❌ **BAD: Implementing custom login forms or embedded login**
This introduces significant security risks and maintenance overhead.

✅ **GOOD: Redirecting to Universal Login with Auth0 SDKs**

```javascript
// Example for a React/SPA using @auth0/auth0-react (built on auth0-spa-js)
import { useAuth0 } from '@auth0/auth0-react';

function LoginButton() {
  const { loginWithRedirect } = useAuth0();

  const handleLogin = () => {
    loginWithRedirect({
      appState: { targetUrl: window.location.pathname },
      authorizationParams: {
        redirect_uri: window.location.origin + '/callback',
        scope: 'openid profile email', // Request only necessary scopes
      },
    });
  };

  return <button onClick={handleLogin}>Log In</button>;
}
```

## 2. Enforce Authorization Code Flow with PKCE

For all public clients (SPAs, mobile apps, native desktop apps), the Authorization Code Flow with Proof Key for Code Exchange (PKCE) is the *only* acceptable grant type. This prevents authorization code injection attacks. **Never use Implicit Grant or Resource Owner Password Grant (ROPG).**

❌ **BAD: Using Implicit Grant or ROPG**
These flows are deprecated and highly vulnerable.

```javascript
// ❌ BAD: Implicit Grant (responseType: 'token id_token')
// Avoid configuring your Auth0 application to allow this.

// ❌ BAD: ROPG (sending username/password directly to /oauth/token)
// Never trust the client with user credentials.
```

✅ **GOOD: Authorization Code Flow with PKCE**
Ensure your Auth0 application is configured for PKCE, and your SDK handles the `code_challenge` and `code_verifier`.

```go
// Example for a Go backend (handling Auth0 callback)
package main

import (
	"context"
	"log"
	"net/http"
	"github.com/auth0/go-auth0/v2/authentication"
	"github.com/auth0/go-auth0/v2/authentication/oauth"
)

// authAPI and tokenValidator are initialized once at application startup (see below)
var authAPI *authentication.Authentication

// init function (or similar setup) for authAPI
func initAuthAPI() {
	var err error
	authAPI, err = authentication.New(
		context.Background(),
		"example.us.auth0.com", // Replace with your Auth0 tenant domain
		authentication.WithClientID("YOUR_CLIENT_ID"),
		authentication.WithClientSecret("YOUR_CLIENT_SECRET"), // For backend apps
	)
	if err != nil {
		log.Fatalf("Failed to initialize Auth0 authentication API client: %+v", err)
	}
}

func handleAuth0Callback(w http.ResponseWriter, r *http.Request) {
	code := r.URL.Query().Get("code")
	// In a real app, codeVerifier must be retrieved from a secure, short-lived storage
	// (e.g., session) associated with the user's browser session.
	codeVerifier := r.Context().Value("code_verifier").(string) // Placeholder

	tokenSet, err := authAPI.OAuth.LoginWithAuthCodeWithPKCE(r.Context(), oauth.LoginWithAuthCodeWithPKCERequest{
		Code:         code,
		CodeVerifier: codeVerifier,
		RedirectURI:  "https://your-app.com/callback", // Must match configured callback URL
	}, oauth.IDTokenValidationOptions{})
	if err != nil {
		log.Printf("Failed to exchange code for tokens: %v", err)
		http.Error(w, "Authentication failed", http.StatusInternalServerError)
		return
	}
	// ✅ GOOD: Store tokenSet securely (e.g., in an HTTP-only, Secure cookie for web apps)
	// Do NOT expose tokens to client-side JavaScript unnecessarily.
	log.Printf("Successfully authenticated user: %s", tokenSet.IDToken)
	http.Redirect(w, r, "/dashboard", http.StatusFound)

© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc

Похожие правила IDE

Все правила IDE по теме «Безопасность» →
auth0-authentication Mindrally Скилл задаёт агенту правила работы с Auth0: потоки авторизации, Actions, проверка токенов и защита редиректов. CX Codex +1 700установок Auth0 MCP Server auth0 Сервер подключает ИИ-агента к вашему аккаунту Auth0, чтобы управлять приложениями и Actions, проверять логи и работать с пользователями через запросы на обычном языке. CX Codex +1 ★ 121звёзд репо nodeops-auth NodeOps-app Скилл подключает вход NodeOps по PKCE к приложению Next.js. Нужен, когда проекту требуется NodeOps login или SSO. CX Codex +1 564установок oauth-oidc-misconfiguration yaklang Чек-лист для проверки настроек OAuth 2.0 и OpenID Connect. Помогает находить уязвимости в redirect_uri, валидации state, реализации PKCE и привязке аккаунтов. CX Codex +1 3 700установок oauth-implementation Mindrally Инструкции по настройке OAuth 2.0 и 2.1 с защитой через PKCE, ротацией токенов и валидацией redirect URI. Помогает внедрить авторизацию без устаревших небезопасных потоков. CX Codex +1 719установок integration-connectivity-connected-app-configure forcedotcom Скилл для настройки OAuth в Salesforce: Connected Apps, External Client Apps, JWT bearer и PKCE. Пригодится, когда правите .connectedApp-meta.xml или .eca-meta.xml. CX Codex +1 5 500установок

Из того же набора240

Весь набор →
aws-dynamodb Задаёт стандарты работы с AWS DynamoDB через AWS SDK v3 в Cursor. Помогает проектировать single-table схемы и выносить запросы в слой доступа к данным. ★ 3 580звёзд репо aws-cli Правило задаёт практики работы с AWS CLI: разделение профилей, проверку доступа и обработку JSON. Пригодится для скриптов и CI/CD, которые обращаются к AWS. ★ 3 580звёзд репо aws-amplify Правило задаёт Cursor стиль работы с AWS Amplify Gen 2: отдельные файлы ресурсов, модульные функции, типизированные запросы к данным. Пригодится, если бэкенд на Amplify растёт и хочется держать его в порядке. ★ 3 580звёзд репо autogen Руководство по архитектуре мультиагентных систем на AutoGen: модульные агенты в Python, дисковое кэширование вызовов LLM и тесты на pytest. ★ 3 580звёзд репо asyncio Правило для Cursor задаёт, как писать асинхронный код на Python: единая точка входа, задачи без утечек, никаких блокировок цикла событий. ★ 3 580звёзд репо astro Набор инструкций для Cursor по архитектуре Astro: островная гидратация, нулевой JavaScript по умолчанию, строгий TypeScript и структура файлов. ★ 3 580звёзд репо asp-net Правило задаёт рекомендации для ASP.NET Core: как организовать код, проектировать API и работать с асинхронными операциями. Пригодится при разработке и проверке бэкенда. ★ 3 580звёзд репо apollo-graphql Правило для Cursor задаёт порядок работы с Apollo GraphQL: сначала схема на SDL, потом резолверы. Пригодится, если в проекте JS или JSX. ★ 3 580звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой