
उपयोगकर्ताओं के प्रबंधन और JWT टोकन जारी करने के लिए एक JWT-आधारित API
Auth एक उपयोगकर्ता प्रबंधन और प्रमाणीकरण सर्वर है जो Go में लिखा गया है और Supabase की सुविधाओं को संचालित करता है, जैसे:
यह मूल रूप से उत्कृष्ट नेटलिफ़ाई का GoTrue कोडबेस पर आधारित है, हालांकि दोनों सुविधाओं और क्षमताओं में काफी भिन्न हो चुके हैं।
यदि आप परियोजना में योगदान देना चाहते हैं, तो कृपया योगदान मार्गदर्शिका देखें।
अपने स्वयं के कस्टम एनवायरनमेंट वेरिएबल्स संग्रहीत करने के लिए एक .env फ़ाइल बनाएँ। देखें example.env
docker-compose -f docker-compose-dev.yml up postgresmake build . आपको इस प्रकार का आउटपुट देखना चाहिए:```bash
go build -ldflags "-X github.com/supabase/auth/cmd.Version=git rev-parse HEAD"
GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/supabase/auth/cmd.Version=git rev-parse HEAD" -o gotrue-arm643. ऑथ बाइनरी निष्पादित करें: `./auth`
### यदि आपके पास Docker स्थापित है
अपने स्वयं के कस्टम env vars संग्रहीत करने के लिए एक `.env.docker` फ़ाइल बनाएँ। [`example.docker.env`](https://github.com/supabase/auth/blob/HEAD/example.docker.env) देखें।
1. `make build`
2. `make dev`
3. `docker ps` में दो Docker कंटेनर (`auth-auth-1` और `auth-postgres-1`) दिखने चाहिए।
4. बस हो गया! यह पुष्टि करने के लिए कि auth चल रहा है, [health check endpoint](http://localhost:9999/health) पर जाएँ।
## प्रोडक्शन में चलाना
प्रोडक्शन में प्रमाणीकरण सर्वर चलाना आसान काम नहीं है। हम [Supabase Auth](https://supabase.com/auth) का उपयोग करने की अनुशंसा करते हैं, जिसे नियमित सुरक्षा अपडेट मिलते हैं।
अन्यथा, कृपया सुनिश्चित करें कि आप नवीनतम संस्करण में तुरंत अपडेट करने के लिए एक प्रक्रिया स्थापित करते हैं। आप इस रिपॉजिटरी का अनुसरण करके ऐसा कर सकते हैं, विशेष रूप से [Releases](https://github.com/supabase/auth/releases) और [Security Advisories](https://github.com/supabase/auth/security/advisories) अनुभागों का।
### बैकवर्ड संगतता
Auth [Semantic Versioning](https://semver.org) योजना का उपयोग करता है। बैकवर्ड संगतता गारंटियों पर कुछ और स्पष्टीकरण यहाँ दिए गए हैं:
**Go API संगतता**
Auth को Go लाइब्रेरी के रूप में उपयोग करने के लिए नहीं बनाया गया है। इस तरह उपयोग करने पर बैकवर्ड API संगतता की कोई गारंटी नहीं है, चाहे कोई भी संस्करण संख्या बदल जाए।
**पैच**
पैच संस्करण में परिवर्तन निम्नलिखित के साथ बैकवर्ड संगतता की गारंटी देता है:
- डेटाबेस ऑब्जेक्ट (टेबल, कॉलम, इंडेक्स, फ़ंक्शन)।
- REST API
- JWT संरचना
- कॉन्फ़िगरेशन
गारंटीशुदा उदाहरण:
- एक कॉलम का प्रकार नहीं बदलेगा।
- एक टेबल की प्राथमिक कुंजी नहीं बदलेगी।
- एक इंडेक्स नहीं हटाया जाएगा।
- एक विशिष्टता बाधा (uniqueness constraint) नहीं हटाई जाएगी।
- एक REST API को नहीं हटाया जाएगा।
- REST APIs के पैरामीटर पहले की तरह समान रूप से काम करेंगे (या बेहतर, यदि कोई बग ठीक किया गया है)।
- कॉन्फ़िगरेशन नहीं बदलेगा।
गारंटी रहित उदाहरण:
- एक टेबल नए कॉलम जोड़ सकती है।
- एक टेबल में कॉलम पुनः क्रमबद्ध हो सकते हैं।
- गैर-विशिष्ट बाधाएँ (non-unique constraints) हटाई जा सकती हैं (डेटाबेस स्तर की जाँच, null, डिफ़ॉल्ट मान)।
- JWT नए गुण जोड़ सकता है।
**माइनर**
माइनर संस्करण में परिवर्तन निम्नलिखित के साथ बैकवर्ड संगतता की गारंटी देता है:
- REST API
- JWT संरचना
- कॉन्फ़िगरेशन
इन गारंटियों के अपवाद केवल तभी बनाए जाएंगे जब गंभीर सुरक्षा समस्याएँ पाई जाती हैं जिन्हें किसी अन्य तरीके से ठीक नहीं किया जा सकता है।
गारंटीशुदा उदाहरण:
- मौजूदा APIs को पदावनत (deprecated) किया जा सकता है, लेकिन वे अगले कुछ माइनर संस्करण रिलीज़ के लिए काम करते रहेंगे।
- कॉन्फ़िगरेशन परिवर्तन पदावनत हो सकते हैं, लेकिन अगले कुछ माइनर संस्करण रिलीज़ के लिए काम करते रहेंगे।
- पहले से जारी JWT स्वीकार किए जाएंगे, लेकिन नए JWT एक अलग संरचना के साथ हो सकते हैं (लेकिन आमतौर पर समान)।
गारंटी रहित उदाहरण:
- पदावनति सूचना के बाद JWT फ़ील्ड्स को हटाना।
- पदावनति सूचना के बाद कुछ APIs को हटाना।
- पदावनति सूचना के बाद बाहरी प्रदाताओं के साथ साइन-इन को हटाना।
- टेबल, इंडेक्स, व्यू, फ़ंक्शन में विलोपन, छोटा करना (truncation), महत्वपूर्ण स्कीमा परिवर्तन।
हमारा लक्ष्य कम से कम दो प्रमुख संस्करण रिलीज़ या दो सप्ताह (यदि एकाधिक रिलीज़ निकलती हैं) के लिए निष्पादन लॉग में पदावनति सूचना प्रदान करना है। जब तक सूचना सक्रिय है, संगतता की गारंटी दी जाएगी।
**मेजर**
मेजर संस्करण में परिवर्तन पिछले संस्करणों के साथ किसी भी बैकवर्ड संगतता की गारंटी नहीं देते हैं।
### विरासत में मिली विशेषताएँ
Netlify कोडबेस से विरासत में मिली कुछ विशेषताएँ Supabase द्वारा समर्थित नहीं हैं और भविष्य में बिना पूर्व सूचना के हटाई जा सकती हैं। उन विशेषताओं की एक व्यापक सूची निम्नलिखित है:
1. `instances` टेबल के माध्यम से मल्टी-टेनेंसी, अर्थात `GOTRUE_MULTI_INSTANCE_MODE` कॉन्फ़िगरेशन पैरामीटर।
2. सिस्टम उपयोगकर्ता (शून्य UUID उपयोगकर्ता)।
3. `is_super_admin` कॉलम के माध्यम से सुपर एडमिन।
4. `GOTRUE_JWT_ADMIN_GROUP_NAME` और अन्य कॉन्फ़िगरेशन फ़ील्ड्स के माध्यम से JWT में समूह जानकारी।
5. JWT हस्ताक्षर। Supabase Auth असममित कुंजियों (डिफ़ॉल्ट रूप से RS256; ECC/Ed25519 वैकल्पिक) का समर्थन करता है। HS256 अभी भी संगतता के लिए समर्थित है, लेकिन आसान सत्यापन और रोटेशन के लिए असममित कुंजियों में माइग्रेट करने की अनुशंसा की जाती है। भविष्य की पदावनतियाँ (deprecations) चेंजलॉग में घोषित की जाएंगी। विवरण के लिए [JWT Signing Keys](https://supabase.com/docs/guides/auth/signing-keys) और [JWTs guide](https://supabase.com/docs/guides/auth/jwts) देखें।
ध्यान दें कि यह एक संपूर्ण सूची नहीं है और यह बदल सकती है।
### सेल्फ-होस्टिंग करते समय सर्वोत्तम अभ्यास
Auth के साथ बैकवर्ड संगतता सुनिश्चित करने के लिए सेल्फ-होस्टिंग करते समय पालन करने के लिए ये कुछ सर्वोत्तम अभ्यास हैं:
1. Auth द्वारा प्रबंधित स्कीमा को संशोधित न करें। आप `migrations` निर्देशिका में सभी माइग्रेशन देख सकते हैं।
2. डेटाबेस में डेटा की स्कीमा और संरचना पर निर्भर न रहें। उपयोगकर्ताओं के बारे में जानकारी का अनुमान लगाने के लिए हमेशा Auth APIs और JWT का उपयोग करें।
3. Auth को हमेशा TLS-सक्षम प्रॉक्सी के पीछे चलाएँ, जैसे लोड बैलेंसर, CDN, nginx या अन्य समान सॉफ़्टवेयर।
## कॉन्फ़िगरेशन
आप `.env` नामक कॉन्फ़िगरेशन फ़ाइल, पर्यावरण चर, या दोनों के संयोजन का उपयोग करके Auth को कॉन्फ़िगर कर सकते हैं। पर्यावरण चर `GOTRUE_` से उपसर्गित होते हैं, और फ़ाइल के माध्यम से दिए गए मानों पर हमेशा प्राथमिकता रखेंगे।
### टॉप-लेवल```properties
GOTRUE_SITE_URL=https://example.netlify.com/
SITE_URL - string आवश्यक
आपकी साइट जिस बेस URL पर स्थित है। वर्तमान में इसका उपयोग अन्य सेटिंग्स के साथ मिलकर ईमेल में उपयोग होने वाले URL बनाने के लिए किया जाता है। कोई भी URI जो SITE_URL के साथ एक ही होस्ट साझा करता है, redirect_to पैरामीटर के लिए अनुमत मान है (देखें /authorize आदि)।
URI_ALLOW_LIST - string
कॉमा-पृथक URI की सूची (जैसे "https://foo.example.com,https://*.foo.example.com,https://bar.example.com") जो मान्य redirect_to गंतव्य के रूप में अनुमत हैं। डिफ़ॉल्ट [] है। ग्लोबिंग के माध्यम से वाइल्डकार्ड मिलान का समर्थन करता है। जैसे https://*.foo.example.com https://a.foo.example.com और https://b.foo.example.com को स्वीकार करने की अनुमति देगा। सबडोमेन पर भी ग्लोबिंग समर्थित है। जैसे https://foo.example.com/* https://foo.example.com/page1 और https://foo.example.com/page2 को स्वीकार करने की अनुमति देगा।
अधिक सामान्य ग्लोब पैटर्न के लिए, निम्न लिंक देखें।
OPERATOR_TOKEN - string केवल मल्टी-इंस्टेंस मोड के लिए
इस माइक्रोसर्विस के लिए एक ऑपरेटर (सामान्यतः Netlify) के साथ साझा गुप्त कुंजी। इसका उपयोग यह सत्यापित करने के लिए किया जाता है कि अनुरोध ऑपरेटर के माध्यम से प्रॉक्सी किए गए हैं और पेलोड मानों पर भरोसा किया जा सकता है।
DISABLE_SIGNUP - bool
जब साइनअप अक्षम होता है तो नए उपयोगकर्ता बनाने का एकमात्र तरीका निमंत्रण (invites) के माध्यम से होता है। डिफ़ॉल्ट false है, सभी साइनअप सक्षम हैं।
GOTRUE_EXTERNAL_EMAIL_ENABLED - bool
इसका उपयोग ईमेल साइनअप अक्षम करने के लिए करें (उपयोगकर्ता अभी भी बाहरी OAuth प्रदाताओं का उपयोग करके साइन अप / साइन इन कर सकते हैं)
GOTRUE_EXTERNAL_PHONE_ENABLED - bool
इसका उपयोग फ़ोन साइनअप अक्षम करने के लिए करें (उपयोगकर्ता अभी भी बाहरी OAuth प्रदाताओं का उपयोग करके साइन अप / साइन इन कर सकते हैं)
GOTRUE_RATE_LIMIT_HEADER - string
वह हेडर जिस पर /token एंडपॉइंट के लिए रेट लिमिट लागू की जाती है। यह हेडर किसी विश्वसनीय अपस्ट्रीम प्रॉक्सी (जैसे Kong या Envoy) द्वारा सेट किए जाने की अपेक्षा की जाती है। x-forwarded-for जैसे हेडर स्पूफ किए जा सकते हैं और जब क्लाइंट द्वारा सीधे प्रदान किए जाते हैं तो रेट लिमिटिंग के लिए उन पर भरोसा नहीं किया जा सकता।
GOTRUE_RATE_LIMIT_EMAIL_SENT - string
निम्नलिखित एंडपॉइंट्स पर प्रति घंटे भेजे जाने वाले ईमेल की संख्या की रेट लिमिट: /signup, /invite, /magiclink, /recover, /otp, और /user।
GOTRUE_PASSWORD_MIN_LENGTH - int
न्यूनतम पासवर्ड लंबाई, डिफ़ॉल्ट 6 है।
GOTRUE_PASSWORD_REQUIRED_CHARACTERS - : द्वारा अलग किए गए वर्ण सेटों की एक स्ट्रिंग। पासवर्ड स्वीकार किए जाने के लिए प्रत्येक सेट का कम से कम एक वर्ण होना चाहिए। : वर्ण का उपयोग करने के लिए इसे \ के साथ एस्केप करें।
GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED - bool
यदि रिफ्रेश टोकन रोटेशन सक्षम है, तो auth स्वचालित रूप से रद्द किए गए रिफ्रेश टोकन को पुनः उपयोग करने के दुर्भावनापूर्ण प्रयासों का पता लगाएगा। जब कोई दुर्भावनापूर्ण प्रयास पता चलता है, GoTrue तुरंत उस अपमानजनक टोकन से उत्पन्न सभी टोकन रद्द कर देता है।
GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL - string
यह सेटिंग केवल तभी लागू होती है जब GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED सक्षम हो। रिफ्रेश टोकन के लिए पुन: उपयोग अंतराल (reuse interval) समवर्ती या ऑफ़लाइन समस्याओं का समर्थन करने के लिए अंतराल के दौरान रिफ्रेश टोकन को कई बार विनिमय करने की अनुमति देता है। पुन: उपयोग अंतराल के दौरान, auth रद्द किए गए टोकन का उपयोग करने को दुर्भावनापूर्ण प्रयास नहीं मानेगा और केवल चाइल्ड रिफ्रेश टोकन लौटाएगा।
केवल पिछला रद्द किया गया टोकन पुन: उपयोग किया जा सकता है। वर्तमान मान्य रिफ्रेश टोकन से बहुत पहले किसी पुराने रिफ्रेश टोकन का उपयोग करने से पुन: उपयोग का पता लगाने की प्रक्रिया सक्रिय हो जाएगी।
GOTRUE_API_HOST=localhost PORT=9999 API_EXTERNAL_URL=http://localhost:9999
`API_HOST` - `string`
सुनने के लिए होस्टनेम।
`PORT` (कोई उपसर्ग नहीं) / `API_PORT` - `number`
सुनने के लिए पोर्ट नंबर। डिफ़ॉल्ट `8081` है।
`API_ENDPOINT` - `string` _केवल मल्टी-इंस्टेंस मोड_
नियंत्रित करता है कि Netlify इस API को किस endpoint पर एक्सेस कर सकता है।
`API_EXTERNAL_URL` - `string` **आवश्यक**
वह URL जिस पर GoTrue एक्सेस किया जा सकता है।
`REQUEST_ID_HEADER` - `string`
यदि आप आने वाले अनुरोध से request ID प्राप्त करना चाहते हैं, तो इस मान में नाम निर्दिष्ट करें।
### डेटाबेस```properties
GOTRUE_DB_DRIVER=postgres
DATABASE_URL=root@localhost/auth
DB_DRIVER - string आवश्यक
यह चुनता है कि आप डेटाबेस का कौन-सा डायलेक्ट चाहते हैं। यह postgres होना चाहिए।
DATABASE_URL (बिना उपसर्ग) / DB_DATABASE_URL - string आवश्यक
डेटाबेस के लिए कनेक्शन स्ट्रिंग।
GOTRUE_DB_MAX_POOL_SIZE - int
डेटाबेस के लिए खुले कनेक्शनों की अधिकतम संख्या निर्धारित करता है। डिफ़ॉल्ट 0 है, जो कनेक्शनों की "असीमित" संख्या के बराबर है।
DB_NAMESPACE - string
सभी टेबल नामों में एक उपसर्ग जोड़ता है।
माइग्रेशन नोट
जब आप ./auth चलाते हैं तो माइग्रेशन स्वचालित रूप से लागू हो जाते हैं। हालाँकि, आपके पास निम्नलिखित तरीकों से माइग्रेशन को फिर से चलाने का विकल्प भी है:
./auth migratedocker run --rm auth gotrue migrateLOG_LEVEL=debug # available without GOTRUE prefix (exception) GOTRUE_LOG_FILE=/var/log/go/auth.log
`LOG_LEVEL` - `string`
नियंत्रित करता है कि कौन से लॉग स्तर आउटपुट हों। `panic`, `fatal`, `error`, `warn`, `info`, या `debug` में से चुनें। डिफ़ॉल्ट `info` है।
`LOG_FILE` - `string`
यदि आप लॉग को किसी फ़ाइल में लिखवाना चाहते हैं, तो `log_file` को एक मान्य फ़ाइल पथ पर सेट करें।
### ऑब्ज़र्वेबिलिटी
Auth में बुनियादी ऑब्ज़र्वेबिलिटी अंतर्निहित है। यह एक कलेक्टर को [OpenTelemetry](https://opentelemetry.io) मेट्रिक्स और ट्रेस निर्यात करने में सक्षम है।
#### ट्रेसिंग
ट्रेसिंग सक्षम करने के लिए इन वेरिएबल्स को कॉन्फ़िगर करें:
`GOTRUE_TRACING_ENABLED` - `bool`
`GOTRUE_TRACING_EXPORTER` - `string` केवल `opentelemetry` समर्थित है
सुनिश्चित करें कि आप अपने कलेक्टर या सेवा के लिए [OpenTelemetry
Exporter](https://opentelemetry.io/docs/reference/specification/protocol/exporter/)
कॉन्फ़िगरेशन भी कॉन्फ़िगर करें।
उदाहरण के लिए, यदि आप
[Honeycomb.io](https://docs.honeycomb.io/getting-data-in/opentelemetry/go-distro/#using-opentelemetry-without-the-honeycomb-distribution)
का उपयोग करते हैं, तो आपको ये मानक OpenTelemetry OTLP वेरिएबल्स सेट करने चाहिए:```
OTEL_SERVICE_NAME=auth
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=<API-KEY>,x-honeycomb-dataset=auth"
मेट्रिक्स सक्षम करने के लिए इन वेरिएबल्स को कॉन्फ़िगर करें:
GOTRUE_METRICS_ENABLED - boolean
GOTRUE_METRICS_EXPORTER - string केवल opentelemetry और prometheus
समर्थित हैं
सुनिश्चित करें कि आप अपने कलेक्टर या सेवा के लिए OpenTelemetry Exporter कॉन्फ़िगरेशन भी कॉन्फ़िगर करते हैं।
यदि आप prometheus exporter का उपयोग करते हैं, तो सर्वर होस्ट और पोर्ट को
इन मानक OpenTelemetry वेरिएबल्स का उपयोग करके कॉन्फ़िगर किया जा सकता है:
OTEL_EXPORTER_PROMETHEUS_HOST - IP पता, डिफ़ॉल्ट 0.0.0.0
OTEL_EXPORTER_PROMETHEUS_PORT - पोर्ट नंबर, डिफ़ॉल्ट 9100
मेट्रिक्स सर्वर पर / पथ पर निर्यात की जाती हैं।
यदि आप opentelemetry exporter का उपयोग करते हैं, तो मेट्रिक्स कलेक्टर को
पुश की जाती हैं।
उदाहरण के लिए, यदि आप Honeycomb.io का उपयोग करते हैं तो आपको ये मानक OpenTelemetry OTLP वेरिएबल्स सेट करने चाहिए:``` OTEL_SERVICE_NAME=auth OTEL_EXPORTER_OTLP_PROTOCOL=grpc OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443 OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=,x-honeycomb-dataset=auth"
ध्यान दें कि Honeycomb.io को मेट्रिक्स इन्जेस्ट करने के लिए एक सशुल्क योजना की आवश्यकता होती है।
यदि आपको ट्रेस या मेट्रिक्स पुश न होने की समस्या को डीबग करने की आवश्यकता है, तो आप
OpenTelemetry SDK से अधिक जानकारी प्राप्त करने के लिए `DEBUG=true` सेट कर सकते हैं।
#### कस्टम संसाधन विशेषताएँ
जब आप OpenTelemetry ट्रेसिंग या मेट्रिक्स एक्सपोर्टर का उपयोग करते हैं, तो आप [मानक `OTEL_RESOURCE_ATTRIBUTES` पर्यावरण
चर](https://opentelemetry.io/docs/reference/specification/resource/sdk/#specifying-resource-information-via-an-environment-variable) का उपयोग करके कस्टम संसाधन विशेषताएँ परिभाषित कर सकते हैं।
बिल्ड संस्करण युक्त एक डिफ़ॉल्ट विशेषता `auth.version` प्रदान की जाती है।
#### HTTP रूट्स की ट्रेसिंग
Auth API के सभी HTTP कॉल ट्रेस किए जाते हैं। रूट्स रूट के पैरामीट्रीकृत
संस्करण का उपयोग करते हैं, और रूट पैरामीटर के मान
`http.route.params.<route-key>` स्पैन विशेषता के रूप में पाए जा सकते हैं।
उदाहरण के लिए, निम्नलिखित अनुरोध:```
GET /admin/users/4acde936-82dc-4552-b851-831fb8ce0927/
इस प्रकार ट्रेस किया जाएगा:``` http.method = GET http.route = /admin/users/{user_id} http.route.params.user_id = 4acde936-82dc-4552-b851-831fb8ce0927
#### Go रनटाइम और HTTP मेट्रिक्स
Go रनटाइम के सभी मेट्रिक्स उजागर किए गए हैं। कुछ HTTP मेट्रिक्स भी डिफ़ॉल्ट रूप से
एकत्र किए जाते हैं।
### JSON वेब टोकन (JWT)```properties
GOTRUE_JWT_SECRET=supersecretvalue
GOTRUE_JWT_EXP=3600
GOTRUE_JWT_AUD=netlify
JWT_SECRET - string आवश्यक
JWT टोकन को साइन करने के लिए उपयोग किया जाने वाला सीक्रेट।
JWT_EXP - number
टोकन कितने समय तक वैध रहते हैं, सेकंड में। डिफ़ॉल्ट 3600 (1 घंटा) है।
JWT_AUD - string
डिफ़ॉल्ट JWT ऑडियंस। उपयोगकर्ताओं को समूहीकृत करने के लिए ऑडियंस का उपयोग करें।
JWT_ADMIN_GROUP_NAME - string
एडमिन समूह का नाम (यदि सक्षम हो)। डिफ़ॉल्ट admin है।
JWT_DEFAULT_GROUP_NAME - string
वह डिफ़ॉल्ट समूह जिसमें सभी नए उपयोगकर्ताओं को निर्दिष्ट किया जाना है।
हम बाहरी प्रमाणीकरण के लिए apple, azure, bitbucket, discord, facebook, figma, github, gitlab, google, keycloak, linkedin, notion, snapchat, spotify, slack, twitch, और का समर्थन करते हैं।
नामों को external के अंतर्गत कुंजियों के रूप में उपयोग करें ताकि प्रत्येक को अलग से कॉन्फ़िगर किया जा सके।```properties
GOTRUE_EXTERNAL_GITHUB_ENABLED=true
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=myappclientid
GOTRUE_EXTERNAL_GITHUB_SECRET=clientsecretvaluessssh
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI=http://localhost:3000/callback
कोई बाहरी प्रदाता आवश्यक नहीं हैं, लेकिन यदि आप किसी को सक्षम करना चुनते हैं, तो आपको आवश्यक मान प्रदान करने होंगे।
`EXTERNAL_X_ENABLED` - `bool`
यह बाहरी प्रदाता सक्षम है या नहीं
`EXTERNAL_X_CLIENT_ID` - `string` **required**
बाहरी प्रदाता के साथ पंजीकृत OAuth2 क्लाइंट ID।
`EXTERNAL_X_SECRET` - `string` **required**
पंजीकरण के समय बाहरी प्रदाता द्वारा प्रदान किया गया OAuth2 क्लाइंट सीक्रेट।
`EXTERNAL_X_REDIRECT_URI` - `string` **required**
वह URI जिस पर OAuth2 प्रदाता `code` और `state` मानों के साथ रीडायरेक्ट करेगा।
`EXTERNAL_X_URL` - `string`
प्राधिकरण और एक्सेस टोकन का अनुरोध करने के लिए URL बनाने हेतु प्रयुक्त आधार URL। `gitlab` और `keycloak` द्वारा उपयोग किया जाता है। `gitlab` के लिए यह डिफ़ॉल्ट रूप से `https://gitlab.com` है। `keycloak` के लिए आपको इसे अपने इंस्टेंस पर सेट करना होगा, उदाहरण के लिए: `https://keycloak.example.com/realms/myrealm`
#### नेटवर्क हार्डनिंग
बाहरी प्रमाणीकरण प्रदाता कॉन्फ़िगर करने से Auth उस प्रदाता के प्राधिकरण, टोकन और userinfo एंडपॉइंट्स पर आउटबाउंड HTTP अनुरोध करता है। किसी प्रदाता को `GOTRUE_EXTERNAL_*` सेटिंग्स या एडमिन API के माध्यम से कॉन्फ़िगर करना एक प्रशासनिक क्रिया है, और ऐसा करने का अर्थ है उन होस्ट्स और URL पर भरोसा करना जिनसे संपर्क किया जाएगा।
Auth जिस नेटवर्क में चलता है उसे इस तरह हार्डन किया जाना चाहिए कि ये आउटबाउंड कनेक्शन उन आंतरिक-केवल संसाधनों तक नहीं पहुँच सकें जिन्हें आप उजागर नहीं करना चाहते, जैसे कि `localhost`/लूपबैक पते या क्लाउड मेटाडेटा एंडपॉइंट्स (जैसे `169.254.169.254`)। यह उन प्रदाताओं के लिए सबसे अधिक मायने रखता है जिनके पास एडमिन-कॉन्फ़िगर करने योग्य या खोजे जाने योग्य एंडपॉइंट्स होते हैं (जैसे कस्टम OAuth/OIDC प्रदाता), जहाँ एक गलत कॉन्फ़िगर या दुर्भावनापूर्ण URL अन्यथा आंतरिक इन्फ्रास्ट्रक्चर तक पहुँचने के लिए उपयोग किया जा सकता है।
#### Apple OAuth
Apple के साथ बाहरी प्रमाणीकरण को स्थानीय रूप से आज़माने के लिए, आपको निम्नलिखित करना होगा:
1. अपने `/etc/hosts` कॉन्फ़िग में localhost को \<my_custom_dns \> पर रीमैप करें।
2. [api.go](https://github.com/supabase/auth/blob/HEAD/internal/api/api.go) में `ListenAndServe` को निम्नलिखित से प्रतिस्थापित करके auth को localhost पर HTTPS ट्रैफ़िक सर्व करने के लिए कॉन्फ़िगर करें: ```
func (a *API) ListenAndServe(hostAndPort string) {
log := logrus.WithField("component", "api")
path, err := os.Getwd()
if err != nil {
log.Println(err)
}
server := &http.Server{
Addr: hostAndPort,
Handler: a.handler,
}
done := make(chan struct{})
defer close(done)
go func() {
waitForTermination(log, done)
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
server.Shutdown(ctx)
}()
if err := server.ListenAndServeTLS("PATH_TO_CRT_FILE", "PATH_TO_KEY_FILE"); err != http.ErrServerClosed {
log.WithError(err).Fatal("http server listen failed")
}
}
GOTRUE_EXTERNAL_APPLE_SECRET उत्पन्न करें!ईमेल भेजना अनिवार्य नहीं है, लेकिन पासवर्ड पुनर्प्राप्ति के लिए अत्यधिक अनुशंसित है। यदि सक्षम है, तो आपको नीचे आवश्यक मान प्रदान करने होंगे।```properties GOTRUE_SMTP_HOST=smtp.mandrillapp.com GOTRUE_SMTP_PORT=587 GOTRUE_SMTP_USER=[email protected] GOTRUE_SMTP_PASS=correcthorsebatterystaple GOTRUE_SMTP_ADMIN_EMAIL=[email protected] GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm"
`SMTP_ADMIN_EMAIL` - `string` **आवश्यक**
सभी भेजे गए ईमेल के लिए `From` ईमेल पता।
`SMTP_HOST` - `string` **आवश्यक**
ईमेल भेजने के लिए मेल सर्वर का होस्टनाम।
`SMTP_PORT` - `number` **आवश्यक**
मेल सर्वर से कनेक्ट करने के लिए पोर्ट नंबर।
`SMTP_USER` - `string`
यदि मेल सर्वर को प्रमाणीकरण की आवश्यकता होती है, तो उपयोग करने के लिए उपयोगकर्ता नाम।
`SMTP_PASS` - `string`
यदि मेल सर्वर को प्रमाणीकरण की आवश्यकता होती है, तो उपयोग करने के लिए पासवर्ड।
`SMTP_MAX_FREQUENCY` - `number`
किसी अन्य साइनअप पुष्टिकरण या पासवर्ड रीसेट ईमेल भेजने से पहले गुजरने वाले न्यूनतम समय को नियंत्रित करता है। मान सेकंडों की संख्या है। डिफ़ॉल्ट 900 (15 मिनट) है।
`SMTP_SENDER_NAME` - `string`
प्रेषक का नाम सेट करता है। यदि उपयोग नहीं किया जाता है, तो डिफ़ॉल्ट `SMTP_ADMIN_EMAIL` होता है।
`MAILER_AUTOCONFIRM` - `bool`
यदि आपको ईमेल पुष्टिकरण की आवश्यकता नहीं है, तो आप इसे `true` पर सेट कर सकते हैं। डिफ़ॉल्ट `false` है।
`MAILER_OTP_EXP` - `number`
एक ईमेल लिंक या OTP के मान्य रहने की अवधि को नियंत्रित करता है।
`MAILER_URLPATHS_INVITE` - `string`
उपयोगकर्ता आमंत्रण ईमेल में उपयोग करने के लिए URL पथ। डिफ़ॉल्ट `/verify` है।
`MAILER_URLPATHS_CONFIRMATION` - `string`
साइनअप पुष्टिकरण ईमेल में उपयोग करने के लिए URL पथ। डिफ़ॉल्ट `/verify` है।
`MAILER_URLPATHS_RECOVERY` - `string`
पासवर्ड रीसेट ईमेल में उपयोग करने के लिए URL पथ। डिफ़ॉल्ट `/verify` है।
`MAILER_URLPATHS_EMAIL_CHANGE` - `string`
ईमेल परिवर्तन पुष्टिकरण ईमेल में उपयोग करने के लिए URL पथ। डिफ़ॉल्ट `/verify` है।
`MAILER_SUBJECTS_INVITE` - `string`
उपयोगकर्ता आमंत्रण के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `You've been invited` है।
`MAILER_SUBJECTS_CONFIRMATION` - `string`
साइनअप पुष्टिकरण के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Confirm your email address` है।
`MAILER_SUBJECTS_RECOVERY` - `string`
पासवर्ड रीसेट के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Reset your password` है।
`MAILER_SUBJECTS_MAGIC_LINK` - `string`
मैजिक लिंक ईमेल के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Your sign-in link` है।
`MAILER_SUBJECTS_EMAIL_CHANGE` - `string`
ईमेल परिवर्तन पुष्टिकरण के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Confirm your new email address` है।
`MAILER_SUBJECTS_REAUTHENTICATION` - `string`
पुनः प्रमाणीकरण के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `{{ .Token }} is your verification code` है।
`MAILER_SUBJECTS_PASSWORD_CHANGED_NOTIFICATION` - `string`
पासवर्ड बदलने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Your password was changed` है।
`MAILER_SUBJECTS_EMAIL_CHANGED_NOTIFICATION` - `string`
ईमेल बदलने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Your email address was changed` है।
`GOTRUE_MAILER_SUBJECTS_PHONE_CHANGED_NOTIFICATION` - `string`
फ़ोन बदलने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `Your phone number was changed` है।
`GOTRUE_MAILER_SUBJECTS_IDENTITY_LINKED_NOTIFICATION` - `string`
पहचान लिंक होने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `A new sign-in method was linked to your account` है।
`GOTRUE_MAILER_SUBJECTS_IDENTITY_UNLINKED_NOTIFICATION` - `string`
पहचान अनलिंक होने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `A sign-in method was removed from your account` है।
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_ENROLLED_NOTIFICATION` - `string`
सत्यापन विधि जोड़े जाने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `A new verification method was added to your account` है।
`GOTRUE_MAILER_SUBJECTS_MFA_FACTOR_UNENROLLED_NOTIFICATION` - `string`
सत्यापन विधि हटाए जाने की सूचना के लिए उपयोग करने के लिए ईमेल विषय। डिफ़ॉल्ट `A verification method was removed from your account` है।
`MAILER_TEMPLATES_INVITE` - `string`
किसी उपयोगकर्ता को आमंत्रित करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ। (उदा. `https://www.example.com/path-to-email-template.html`)
`SiteURL`, `Email`, और `ConfirmationURL` वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
<h2>You've been invited</h2>
<p>You've been invited to create an account. Follow the link below to accept.</p>
<p><a href="{{ .ConfirmationURL }}">Accept invitation</a></p>
MAILER_TEMPLATES_CONFIRMATION - string
साइनअप की पुष्टि करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ। (उदा. https://www.example.com/path-to-email-template.html)
SiteURL, Email, और ConfirmationURL वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
Follow the link below to confirm this email address and finish signing up.
``` `MAILER_TEMPLATES_RECOVERY` - `string`पासवर्ड रीसेट करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ। (जैसे https://www.example.com/path-to-email-template.html)
SiteURL, Email, और ConfirmationURL वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
We received a request to reset your password. Follow the link below to choose a new one.
If you didn't request this, you can safely ignore this email.
``` `MAILER_TEMPLATES_MAGIC_LINK` - `string`मैजिक लिंक भेजते समय उपयोग करने हेतु ईमेल टेम्पलेट का URL पथ। (जैसे https://www.example.com/path-to-email-template.html)
SiteURL, Email, और ConfirmationURL वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
Follow the link below to sign in. This link expires shortly and can only be used once.
``` `MAILER_TEMPLATES_EMAIL_CHANGE` - `string`ईमेल पते के परिवर्तन की पुष्टि करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ। (उदा. https://www.example.com/path-to-email-template.html)
SiteURL, Email, NewEmail, और ConfirmationURL चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध न हो):```html
Follow the link below to confirm {{ .NewEmail }} as your new email address.
If you didn't request this change, you can safely ignore this email.
``` `MAILER_TEMPLATES_REAUTHENTICATION` - `string`किसी उपयोगकर्ता को पुनः प्रमाणित करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ। (जैसे https://www.example.com/path-to-email-template.html)
Token चर उपलब्ध है।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट अनुपलब्ध है):```html
Use the code below to verify your identity. It expires shortly.
{{ .Token }}
``` `MAILER_TEMPLATES_PASSWORD_CHANGED_NOTIFICATION` - `string`किसी उपयोगकर्ता को सूचित करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ, जब उनका पासवर्ड बदल दिया गया हो। (उदा. https://www.example.com/path-to-email-template.html)
Email चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
The password for your account was recently changed.
If you didn't make this change, reset your password and contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_PASSWORD_CHANGED_ENABLED` - `bool`क्या उपयोगकर्ता का पासवर्ड बदलने पर एक अधिसूचना ईमेल भेजना है। डिफ़ॉल्ट false है।
MAILER_TEMPLATES_EMAIL_CHANGED_NOTIFICATION - string
उपयोगकर्ता को सूचित करने के लिए उपयोग होने वाले ईमेल टेम्पलेट का URL पथ, जब उनका ईमेल बदला गया हो। (उदा. https://www.example.com/path-to-email-template.html)
Email और OldEmail चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट अनुपलब्ध है):```html
The email address for your account was changed from {{ .OldEmail }} to {{ .Email }}.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_EMAIL_CHANGED_ENABLED` - `bool`जब उपयोगकर्ता का ईमेल बदला जाता है तो सूचना ईमेल भेजना है या नहीं। डिफ़ॉल्ट false है।
GOTRUE_MAILER_TEMPLATES_PHONE_CHANGED_NOTIFICATION - string
किसी उपयोगकर्ता को सूचित करते समय उपयोग करने के लिए ईमेल टेम्पलेट का URL पथ, जब उनका फ़ोन नंबर बदल दिया गया हो। (उदा. https://www.example.com/path-to-email-template.html)
Email, Phone, और OldPhone वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेमपलेट उपलब्ध नहीं है):```html
The phone number for your account was changed from {{ .OldPhone }} to {{ .Phone }}.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_PHONE_CHANGED_ENABLED` - `bool`क्या उपयोगकर्ता का फ़ोन नंबर बदले जाने पर एक सूचना ईमेल भेजा जाए। डिफ़ॉल्ट false है।
GOTRUE_MAILER_TEMPLATES_IDENTITY_LINKED_NOTIFICATION - string
किसी उपयोगकर्ता को सूचित करते समय उपयोग करने के लिए एक ईमेल टेम्पलेट का URL पथ, जब उनके खाते में कोई साइन-इन विधि लिंक की गई हो। (उदा. https://www.example.com/path-to-email-template.html)
Email और Provider चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
Your {{ .Provider }} account was linked as a new sign-in method for {{ .Email }}.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_LINKED_ENABLED` - `bool`जब कोई साइन-इन विधि किसी उपयोगकर्ता के खाते से लिंक होती है तो क्या एक अधिसूचना ईमेल भेजना है। डिफ़ॉल्ट false है।
GOTRUE_MAILER_TEMPLATES_IDENTITY_UNLINKED_NOTIFICATION - string
किसी उपयोगकर्ता को सूचित करते समय उपयोग करने के लिए एक ईमेल टेम्पलेट का URL पथ, कि उनके खाते से एक साइन-इन विधि हटा दी गई है। (उदा. https://www.example.com/path-to-email-template.html)
Email और Provider चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध न हो):```html
Your {{ .Provider }} account was removed as a sign-in method for {{ .Email }}.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_IDENTITY_UNLINKED_ENABLED` - `bool`क्या किसी उपयोगकर्ता के खाते से साइन-इन विधि हटाए जाने पर एक सूचना ईमेल भेजना है। डिफ़ॉल्ट false है।
GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_ENROLLED_NOTIFICATION - string
उस ईमेल टेम्पलेट का URL पथ जिसका उपयोग किसी उपयोगकर्ता को यह सूचित करने के लिए किया जाता है कि उनके खाते में एक नई सत्यापन विधि जोड़ी गई है। (जैसे https://www.example.com/path-to-email-template.html)
Email और FactorType चर उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध नहीं है):```html
Sign-in verification method {{ .FactorType }} was added to your account.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_ENROLLED_ENABLED` - `bool`जब किसी उपयोगकर्ता के खाते में नई सत्यापन विधि जोड़ी जाती है तो सूचना ईमेल भेजना है या नहीं। डिफ़ॉल्ट false है।
GOTRUE_MAILER_TEMPLATES_MFA_FACTOR_UNENROLLED_NOTIFICATION - string
ईमेल टेम्पलेट का URL पथ, जिसका उपयोग किसी उपयोगकर्ता को सूचित करते समय किया जाता है कि उनके खाते से एक सत्यापन विधि हटा दी गई है। (जैसे https://www.example.com/path-to-email-template.html)
Email और FactorType वेरिएबल उपलब्ध हैं।
डिफ़ॉल्ट सामग्री (यदि टेम्पलेट उपलब्ध न हो):```html
Sign-in verification method {{ .FactorType }} was removed from your account.
If you didn't make this change, contact support immediately.
``` `GOTRUE_MAILER_NOTIFICATIONS_MFA_FACTOR_UNENROLLED_ENABLED` - `bool`क्या किसी उपयोगकर्ता के खाते से सत्यापन विधि हटाए जाने पर एक अधिसूचना ईमेल भेजना है। डिफ़ॉल्ट रूप से false होता है।
SMS_AUTOCONFIRM - bool
यदि आपको फ़ोन पुष्टिकरण की आवश्यकता नहीं है, तो आप इसे true पर सेट कर सकते हैं। डिफ़ॉल्ट रूप से false होता है।
SMS_MAX_FREQUENCY - number
किसी अन्य SMS OTP भेजने से पहले गुजरने वाले न्यूनतम समय को नियंत्रित करता है। मान सेकंडों की संख्या है। डिफ़ॉल्ट 60 (1 मिनट) है।
SMS_OTP_EXP - number
नियंत्रित करता है कि SMS OTP कितने समय तक मान्य रहता है।
SMS_OTP_LENGTH - number
भेजे गए SMS OTP के अंकों की संख्या को नियंत्रित करता है।
SMS_PROVIDER - string
उपलब्ध विकल्प हैं: twilio, messagebird, textlocal, और vonage
फिर आप अपने twilio क्रेडेंशियल का उपयोग कर सकते हैं:
SMS_TWILIO_ACCOUNT_SIDSMS_TWILIO_AUTH_TOKENSMS_TWILIO_MESSAGE_SERVICE_SID - इसे आपके twilio प्रेषक मोबाइल नंबर पर सेट किया जा सकता हैया Messagebird क्रेडेंशियल, जिन्हें Dashboard से प्राप्त किया जा सकता है:
SMS_MESSAGEBIRD_ACCESS_KEY - आपकी Messagebird एक्सेस कुंजीSMS_MESSAGEBIRD_ORIGINATOR - SMS प्रेषक (आपका Messagebird फ़ोन नंबर + के साथ या कंपनी का नाम)captcha_token फ़ील्ड की जाँच करेगा और CAPTCHA प्रदाता को सत्यापन अनुरोध भेजेगा।SECURITY_CAPTCHA_ENABLED - string
क्या captcha मिडलवेयर सक्षम है
SECURITY_CAPTCHA_PROVIDER - string
अभी के लिए समर्थित एकमात्र विकल्प हैं: hCaptcha और Turnstile
SECURITY_CAPTCHA_SECRET - stringSECURITY_CAPTCHA_TIMEOUT - stringhcaptcha या turnstile खाते से प्राप्त करें
SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION - bool
पासवर्ड अपडेट पर पुनः प्रमाणीकरण अनिवार्य करें।
GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED - bool
अनाम साइन-इन सक्षम/अक्षम करने के लिए इसका उपयोग करें।
GOTRUE_SECURITY_SB_FORWARDED_FOR_ENABLED - bool
Sb-Forwarded-For HTTP अनुरोध हेडर का उपयोग करके IP पता अग्रेषण सक्षम करें। सक्षम होने पर, Auth इस हेडर के पहले मान को IP पते के रूप में पार्स करेगा और इसका उपयोग IP पता ट्रैकिंग और दर सीमा (rate limiting) के लिए करेगा। इस सुविधा को सक्षम करने से पहले सुनिश्चित करें कि यह हेडर पूरी तरह से विश्वसनीय है, इसे केवल विश्वसनीय क्लाइंट या प्रॉक्सी से ही पास करें।
Auth निम्नलिखित एंडपॉइंट्स उजागर करता है:
इस auth इंस्टेंस के लिए सार्वजनिक रूप से उपलब्ध सेटिंग्स लौटाता है।```json { "external": { "apple": true, "azure": true, "bitbucket": true, "discord": true, "facebook": true, "figma": true, "github": true, "gitlab": true, "google": true, "keycloak": true, "linkedin": true, "notion": true, "slack": true, "snapchat": true, "spotify": true, "twitch": true, "twitter": true, "workos": true }, "disable_signup": false, "autoconfirm": false }
### **POST, PUT /admin/users/<user_id>**
निर्दिष्ट `user_id` के आधार पर उपयोगकर्ता को बनाता (POST) या अद्यतन (PUT) करता है। `ban_duration` फ़ील्ड निम्नलिखित समय इकाइयों को स्वीकार करता है: "ns", "us", "ms", "s", "m", "h"। प्रयुक्त प्रारूप के बारे में अधिक जानकारी के लिए [`time.ParseDuration`](https://pkg.go.dev/time#ParseDuration) देखें।```js
headers:
{
"Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // requires a role claim that can be set in the GOTRUE_JWT_ADMIN_ROLES env var
}
body:
{
"role": "test-user",
"email": "[email protected]",
"phone": "12345678",
"password": "secret", // only if type = signup
"email_confirm": true,
"phone_confirm": true,
"user_metadata": {},
"app_metadata": {},
"ban_duration": "24h" or "none" // to unban a user
}
निर्दिष्ट प्रकार के आधार पर संबंधित ईमेल एक्शन लिंक लौटाता है। अन्य बातों के अलावा, प्रतिक्रिया में सुविधा के लिए एक्शन लिंक के क्वेरी पैरामीटर अलग-अलग JSON फ़ील्ड के रूप में भी शामिल होते हैं (साथ में ईमेल OTP भी, जिससे संबंधित टोकन उत्पन्न होता है)।```js headers: { "Authorization": "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" // admin role required }
body: { "type": "signup" or "magiclink" or "recovery" or "invite" or "email_change_current" or "email_change_new", "email": "[email protected]", "password": "secret", // only if type = signup "data": { ... }, // only if type = signup "redirect_to": "https://supabase.io" // Redirect URL to send the user to after an email action. Defaults to SITE_URL.
}
रिटर्न```js
{
"action_link": "http://localhost:9999/verify?token=TOKEN&type=TYPE&redirect_to=REDIRECT_URL",
"email_otp": "EMAIL_OTP",
"hashed_token": "TOKEN",
"verification_type": "TYPE",
"redirect_to": "REDIRECT_URL",
...
}
ईमेल और पासवर्ड के साथ एक नया उपयोगकर्ता पंजीकृत करें।```json { "email": "[email protected]", "password": "secret" }
रिटर्न:```js
{
"id": "11111111-2222-3333-4444-5555555555555",
"email": "[email protected]",
"confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
"created_at": "2016-05-15T19:53:12.368652374-07:00",
"updated_at": "2016-05-15T19:53:12.368652374-07:00"
}
// if sign up is a duplicate then faux data will be returned
// as to not leak information about whether a given email
// has an account with your service or not
फ़ोन नंबर और पासवर्ड के साथ एक नया उपयोगकर्ता पंजीकृत करें।```js { "phone": "12345678", // follows the E.164 format "password": "secret" }
परिणाम:```js
{
"id": "11111111-2222-3333-4444-5555555555555", // if duplicate sign up, this ID will be faux
"phone": "12345678",
"confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
"created_at": "2016-05-15T19:53:12.368652374-07:00",
"updated_at": "2016-05-15T19:53:12.368652374-07:00"
}
यदि AUTOCONFIRM सक्षम है और साइन अप डुप्लिकेट है, तो एंडपॉइंट वापस लौटाएगा:```json { "code": 400, "msg": "User already registered" }
### **POST /resend**
किसी उपयोगकर्ता को मौजूदा signup, sms, email_change या phone_change OTP को फिर से भेजने की अनुमति देता है।```json
{
"email": "[email protected]",
"type": "signup"
}
सुरक्षा अनुसंधान और पेन-टेस्टिंग के लिए उच्च-स्तरीय नेटवर्क ट्रैफ़िक विश्लेषण क्षमताएँ प्रदान करता है, विशेष रूप से उन परिदृश्यों में जहाँ गहन पैकेट निरीक्षण महत्वपूर्ण है। यह टूल परिष्कृत पार्सिंग तकनीकों का लाभ उठाता है ताकि जटिल प्रोटोकॉल से सार्थक जानकारी निकाली जा सके, जिससे यह सुरक्षा पेशेवरों के लिए एक अमूल्य संसाधन बन जाता है जो नेटवर्क विसंगतियों को समझना चाहते हैं।
विस्तृत लॉगिंग और रिपोर्टिंग क्षमताओं के साथ, उपयोगकर्ता नेटवर्क व्यवहार में व्यापक अंतर्दृष्टि उत्पन्न कर सकते हैं। यह दृष्टिकोण सुनिश्चित करता है कि जाँच के दौरान कोई भी महत्वपूर्ण विवरण अनदेखा न हो, जो नियमित नेटवर्क संचालन और घटना प्रतिक्रिया दोनों के लिए एक संपूर्ण दृश्य प्रदान करता है। डेटा प्रोसेसिंग को स्वचालित करके, यह मैन्युअल विश्लेषण से जुड़े समय को काफी हद तक कम कर देता है, जिससे तेज़ निर्णय लेने में मदद मिलती है।
इस टूल का उपयोग विभिन्न वातावरणों में किया जा सकता है, सरल प्रयोगशाला सेटअप से लेकर बड़े पैमाने के उद्यम नेटवर्क तक। इसका हल्का डिज़ाइन न्यूनतम प्रदर्शन ओवरहेड सुनिश्चित करता है, जबकि इसकी मजबूत विशेषता सेट उच्च-मांग वाले परिदृश्यों में भी गहन जाँच की अनुमति देता है। वास्तविक समय की निगरानी क्षमताएँ खतरों का तुरंत पता लगाने में सक्षम बनाती हैं, और इसकी लचीली कॉन्फ़िगरेशन क्षमताएँ इसे विभिन्न परिचालन आवश्यकताओं के लिए अनुकूल बनाती हैं।
चाहे आप नेटवर्क सुरक्षा को बढ़ाना चाहते हों या संदिग्ध गतिविधियों की जाँच करना चाहते हों, यह उपकरण एक विश्वसनीय समाधान के रूप में कार्य करता है। इसका सहज ज्ञान युक्त इंटरफ़ेस और व्यापक दस्तावेज़ीकरण सीखने की प्रक्रिया को सरल बनाता है, जिससे उपयोगकर्ता इसकी पूरी क्षमता का शीघ्रता से दोहन कर सकते हैं। इसके अतिरिक्त, सक्रिय विकास और सामुदायिक समर्थन यह सुनिश्चित करते हैं कि यह नवीनतम नेटवर्किंग रुझानों और सुरक्षा चुनौतियों के साथ विकसित होता रहे।```json { "phone": "12345678", "type": "sms" }
वापसी:```json
{
"message_id": "msgid123456"
}
किसी नए उपयोगकर्ता को ईमेल के साथ आमंत्रित करता है।
इस एंडपॉइंट के लिए service_role या supabase_admin JWT को Auth Bearer हेडर के रूप में सेट करना आवश्यक है:
e.g.```js headers: { "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" }
कोई सामग्री प्रदान नहीं की गई है।```json
{
"email": "[email protected]"
}
रिटर्न:```json { "id": "11111111-2222-3333-4444-5555555555555", "email": "[email protected]", "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", "created_at": "2016-05-15T19:53:12.368652374-07:00", "updated_at": "2016-05-15T19:53:12.368652374-07:00", "invited_at": "2016-05-15T19:53:12.368652374-07:00" }
### **POST /verify**
किसी पंजीकरण या पासवर्ड पुनर्प्राप्ति को सत्यापित करें। प्रकार `signup`, `recovery`, `invite`, `magiclink`, `email_change`, `sms`, या `phone_change` हो सकता है
और `token` वह टोकन है जो `/signup` या `/recover` से लौटाया गया है।```json
{
"type": "signup",
"token": "confirmation-code-delivered-in-email"
}
password साइनअप सत्यापन के लिए आवश्यक है यदि कोई मौजूदा पासवर्ड नहीं है।
रिटर्न:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token", "type": "signup | recovery | invite | magiclink | email_change | sms | phone_change" }
फोन साइनअप या SMS OTP सत्यापित करें। Type को `sms` पर सेट किया जाना चाहिए।```json
{
"type": "sms",
"token": "confirmation-otp-delivered-in-sms",
"redirect_to": "https://supabase.io",
"phone": "phone-number-sms-otp-was-delivered-to"
}
रिटर्न्स:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }
### **GET /verify**
किसी पंजीकरण या पासवर्ड पुनर्प्राप्ति को सत्यापित करें। प्रकार `signup`, `recovery`, `magiclink`, `invite`, या `email_change` हो सकता है और `token` वह टोकन है जो `/signup`, `/recover`, या `/magiclink` से लौटाया गया हो।
क्वेरी पैरामीटर:```json
{
"type": "signup",
"token": "confirmation-code-delivered-in-email",
"redirect_to": "https://supabase.io"
}
उपयोगकर्ता लॉग इन हो जाएगा और पुनर्निर्देशित किया जाएगा:``` SITE_URL/#access_token=jwt-token-representing-the-user&token_type=bearer&expires_in=3600&refresh_token=a-refresh-token&type=invite
आपके ऐप को फ्रैगमेंट में क्वेरी पैरामीटर्स का पता लगाना चाहिए और उन्हें सेशन सेट करने के लिए उपयोग करना चाहिए (supabase-js यह स्वचालित रूप से करता है)
आप `type` पैरामीटर का उपयोग करके उपयोगकर्ता को `invite` या `recovery` के मामले में पासवर्ड सेट करने वाले फ़ॉर्म पर रीडायरेक्ट कर सकते हैं,
या `signup` के मामले में खाता पुष्टि/स्वागत संदेश दिखा सकते हैं, या उन्हें किसी अतिरिक्त ऑनबोर्डिंग प्रवाह पर निर्देशित कर सकते हैं
### **POST /otp**
एक-बार पासवर्ड। यह अनुरोध बॉडी में "email" या "phone" कुंजी होने के आधार पर उपयोगकर्ता को एक मैजिक लिंक या SMS OTP प्रदान करेगा।
यदि `"create_user": true` है, तो उपयोगकर्ता मौजूद न होने पर उसे स्वचालित रूप से साइन अप नहीं किया जाएगा।```js
{
"phone": "12345678" // follows the E.164 format
"create_user": true
}
या```js // exactly the same as /magiclink { "email": "[email protected]" "create_user": true }
रिटर्न:```json
{}
मैजिक लिंक। उपयोगकर्ता को एक लिंक (जैसे /verify?type=magiclink&token=fgtyuf68ddqdaDd) भेजेगा, जो ईमेल पते पर
आधारित है, जिसका उपयोग वे access_token को प्राप्त करने के लिए कर सकते हैं।
डिफ़ॉल्ट रूप से, मैजिक लिंक हर 60 सेकंड में केवल एक बार भेजे जा सकते हैं।```json { "email": "[email protected]" }
रिटर्न्स:```json
{}
जब मैजिक लिंक पर क्लिक किया जाता है, तो यह <SITE_URL>#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=magiclink पर रीडायरेक्ट करेगा (ऊपर /verify देखें)
पासवर्ड पुनर्प्राप्ति। उपयोगकर्ता को ईमेल पते के आधार पर पासवर्ड पुनर्प्राप्ति मेल भेजा जाएगा।
डिफ़ॉल्ट रूप से पुनर्प्राप्ति लिंक केवल हर 60 सेकंड में एक बार भेजे जा सकते हैं।```json { "email": "[email protected]" }
रिटर्न:```json
{}
यह एक OAuth2 एंडपॉइंट है जो वर्तमान में password और refresh_token ग्रांट प्रकारों को लागू करता है।
query पैरामीटर्स:``` ?grant_type=password
body:```js
// Email login
{
"email": "[email protected]",
"password": "somepassword"
}
// Phone login
{
"phone": "12345678",
"password": "somepassword"
}
या
क्वेरी पैरामीटर:``` grant_type=refresh_token
body:```json
{
"refresh_token": "a-refresh-token"
}
एक बार जब आपके पास एक्सेस टोकन हो, तो आप प्रमाणीकरण की आवश्यकता वाली विधियों तक पहुँच सकते हैं
Authorization: Bearer YOUR_ACCESS_TOKEN_HERE हेडर सेट करके।
रिटर्न:```json { "access_token": "jwt-token-representing-the-user", "token_type": "bearer", "expires_in": 3600, "refresh_token": "a-refresh-token" }
### **GET /user**
लॉग इन किए गए उपयोगकर्ता के लिए JSON ऑब्जेक्ट प्राप्त करें (प्रमाणीकरण आवश्यक है)
रिटर्न करता है:```json
{
"id": "11111111-2222-3333-4444-5555555555555",
"email": "[email protected]",
"confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00",
"created_at": "2016-05-15T19:53:12.368652374-07:00",
"updated_at": "2016-05-15T19:53:12.368652374-07:00"
}
किसी उपयोगकर्ता को अपडेट करें (प्रमाणीकरण आवश्यक)। ईमेल/पासवर्ड बदलने के अलावा, इस विधि का उपयोग कस्टम उपयोगकर्ता डेटा सेट करने के लिए किया जा सकता है। ईमेल बदलने पर एक मैजिक लिंक भेजा जाएगा।```json { "email": "[email protected]", "password": "new-password", "phone": "+123456789", "data": { "key": "value", "number": 10, "admin": false } }
लौटाता है:```json
{
"id": "11111111-2222-3333-4444-5555555555555",
"email": "[email protected]",
"email_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
"phone": "+123456789",
"phone_change_sent_at": "2016-05-15T20:49:40.882805774-07:00",
"created_at": "2016-05-15T19:53:12.368652374-07:00",
"updated_at": "2016-05-15T19:53:12.368652374-07:00"
}
यदि GOTRUE_SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION सक्षम है, तो उपयोगकर्ता को पहले पुनः प्रमाणित करना होगा।```json
{
"password": "new-password",
"nonce": "123456"
}
### **GET /reauthenticate**
उपयोगकर्ता के ईमेल (पसंदीदा) या फ़ोन पर एक nonce भेजता है। इस endpoint के लिए उपयोगकर्ता का पहले लॉग इन / प्रमाणित होना आवश्यक है। nonce को सफलतापूर्वक भेजने के लिए उपयोगकर्ता के पास या तो ईमेल या फ़ोन नंबर होना आवश्यक है।```js
headers: {
"Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO"
}
किसी उपयोगकर्ता को लॉगआउट करें (प्रमाणीकरण आवश्यक है)।
यह उपयोगकर्ता के सभी रीफ़्रेश टोकन रद्द कर देगा। ध्यान रखें कि JWT टोकन स्टेटलेस प्रमाणीकरण के लिए उनकी समाप्ति तक वैध रहेंगे।
बाहरी oauth प्रदाता से access_token प्राप्त करें
क्वेरी पैरामीटर:``` provider=apple | azure | bitbucket | discord | facebook | figma | github | gitlab | google | keycloak | linkedin | notion | slack | snapchat | spotify | twitch | twitter | workos
scopes=<optional additional scopes depending on the provider (email and name are requested by default)>
Redirects to provider and then to `/callback`
Apple-विशिष्ट सेटअप के लिए देखें: <https://github.com/supabase/auth#apple-oauth>
### **GET /callback**
External provider should redirect to this endpoint
`<GOTRUE_SITE_URL>#access_token=<access_token>&refresh_token=<refresh_token>&provider_token=<provider_oauth_token>&expires_in=3600&provider=<provider_name>` पर रीडायरेक्ट करता है
यदि अतिरिक्त स्कोप का अनुरोध किया गया था तो `provider_token` भर दिया जाएगा, आप इसका उपयोग प्रदाता से अतिरिक्त डेटा लाने या उनकी सेवाओं के साथ बातचीत करने के लिए कर सकते हैं
twitterworkos