12

मेरे पास एक वेब एप्लिकेशन है जो google api (google drive) का उपयोग करता है। एप्लिकेशन का उपयोग कई ग्राहकों द्वारा किया जाता है और प्रत्येक ग्राहक के पास सिस्टम तक पहुंचने के लिए सबडोमेन होता है।Google कंसोल में सबडोमेन यूआरआई रीडायरेक्ट

तो डोमेन appdomain.com

है और उपयोगकर्ताओं के लिए मेरे पास है foo.appdomain.com, bar.appdomain.com, etc.appdomain.com

लेकिन Google कंसोल में यूआरआई को रीडायरेक्ट करना है, मुझे मैन्युअल रूप से रीडायरेक्ट यूआरएल डालना होगा, क्या कोई तरीका है कि मैं वाइल्डकार्ड का उपयोग किसी भी उप डोमेन जैसे * *appdomain.com को स्वीकार करने के लिए रीडायरेक्ट करने के लिए कर सकता हूं?

इसके साथ ही मैं गूगल प्राधिकरण redirect_uri में उपयोगकर्ता उप डोमेन से कॉल कर सकते हैं:

https://accounts.google.com/o/oauth2/auth?redirect_uri=http://foo.appdomain.com 

उत्तर

15

वाइल्डकार्ड उप डोमेन मिलान गूगल OAuth में समर्थित नहीं है। आप राज्य पैरामीटर का उपयोग करने का प्रयास कर सकते हैं और वहां उपयोगकर्ता-विशिष्ट जानकारी शामिल कर सकते हैं। यह पैरामीटर आपको प्रतिक्रिया में वापस कर दिया जाएगा। राज्य here पर अधिक जानकारी।

+0

@Lito एक समाधान के राज्य परम का उपयोग करके उपरोक्त सुझाव दिया है। – LukePOLO

+1

@vlatko ऐसा लगता है कि वह लिंक मर चुका है, या कम से कम किसी अन्य पृष्ठ पर रीडायरेक्ट नहीं है, जिसमें 'राज्य' जानकारी नहीं है, और मुझे इसे कहीं भी अच्छी तरह से प्रलेखित नहीं किया जा सकता है। मैंने आईफ्रेम में Google+ लॉगिन बटन लोड करने के सुझावों को देखा है और उसके बाद आईफ़्रेम मूल पृष्ठ को पुनः लोड कर रहा है ... एक दुःस्वप्न की तरह लगता है। – iopener

2

उपयोगी अभी तक अनावश्यक समाधान के लिए हुर्रे (अपने आप को एक कोने गूगल में उलझी के लिए धन्यवाद) ....

मैं Google डिस्क का उपयोग किया गया था फ़ाइल पिकर को खोलने के लिए JavaScript API का उपयोग, फ़ाइल जानकारी/url प्राप्त और उसके बाद मेरे सर्वर पर कर्ल का उपयोग कर इसे डाउनलोड करें। एक बार मुझे अंततः एहसास हुआ कि मेरे सभी वाइल्डकार्ड डोमेन पंजीकृत होना होगा, मुझे स्ट्रोक था।

क्या अब मैं क्या एक को खोलने के लिए एक onclick घटना बनाने

  1. पेज है कि आप कर रहे हैं पर (के रूप में आप की जरूरत है यह मेरा उपयोग मामला है, तुम्हारा करने के लिए इसे पूरा करने), पीछा कर रहा है एक विशिष्ट डोमेन में नई विंडो (https://googledrive.example.com/oauth/index.php?unique_token={some unique token})।

  2. नए पॉपअप पर मैंने अपने सभी Google ड्राइव प्रमाणीकरण किए, फ़ाइल बटन लेने वाले क्लिक करने के लिए एक बटन था, फिर फ़ाइल से मुझे आवश्यक मेटाडेटा को कम से कम पुनर्प्राप्त किया। फिर मैंने अपने डेटाबेस (MySQL) में टोकन (प्राथमिक कुंजी), access_token, downloadurl और फ़ाइल नाम संग्रहीत किया।

  3. चरण एक पृष्ठ पर वापस, मैंने एक सेटटाइमआउट() लूप बनाया जो डेटाबेस में दर्ज किए जाने पर जांचने के लिए एक ही अद्वितीय_टोकन के साथ हर दूसरे को अजाक्स कॉल चलाएगा। एक बार यह पाता है, मैं लूप को मारता हूं और फिर सामग्री को पुनर्प्राप्त करता हूं और उनके साथ करता हूं जैसा कि मैं करता हूं (इस मामले में मैंने उन्हें एक अलग अपलोड स्क्रिप्ट के माध्यम से अपलोड किया जो फ़ाइल लाने के लिए कर्ल का उपयोग करता है)।

यह स्पष्ट रूप से इस से निपटने के लिए सबसे अच्छा तरीका नहीं है, लेकिन यह सांत्वना बादल Googles में हर उप डोमेन में प्रवेश करने की तुलना में बेहतर है। मैं शर्त लगाता हूं कि आप संभवतः गुगल्स सर्वर साइड ओथ पुस्तकालयों के साथ ऐसा कर सकते हैं, लेकिन मेरा उपयोग मामला थोड़ा जटिल था और मैं क्रैकी कारण था क्योंकि मैं पिछले 4 दिनों में निराश था, मैंने Google के साथ मूर्खतापूर्ण छोटे एकीकरण पर खर्च किया है।

7

आप सभी Google लेख प्रतिक्रियाएं प्राप्त करने के लिए एक मास्टर सबडोमेन बना सकते हैं और "स्थिति" क्वेरी पैरामीटर का उपयोग करके सबडोमेन को सही करने के लिए रीडायरेक्ट कर सकते हैं।

उदाहरण के लिए google.mydomain बनाएं।कॉम और इसे अपने वैध "रीडायरेक्ट यूआरआई" के रूप में उपयोग करें और अपाचे इस यूआरएल को रीडायरेक्ट (या फिर से लिखने) सुविधा के साथ प्रत्येक उपयोगकर्ता को रीडायरेक्ट कर सकता है।

अधिक अपाचे के बारे में जानकारी पुनर्निर्देश http://www.simonecarletti.com/blog/2009/01/apache-query-string-redirects/

यहाँ में कोड मैं उपयोग कर रहा हूँ:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^google\. 
RewriteCond %{QUERY_STRING} state=([a-z0-9]+) 
RewriteRule ^(.*)$ http://%1.mydomain.com/$1 [L] 
+0

nginx के लिए बस वापसी 301 https: // $ arg_state $ request_uri; – LukePOLO

संबंधित मुद्दे