গুগল OAuth 2 অনুমোদন - ত্রুটি: redirect_uri_mismatch


385

Https://code.google.com/apis/console ওয়েবসাইটে আমি আমার অ্যাপ্লিকেশনটি নিবন্ধভুক্ত করেছি, উত্পন্ন ক্লায়েন্ট আইডি সেট আপ করেছি : এবং ক্লায়েন্ট সিক্রেট আমার অ্যাপ্লিকেশনটিতে এবং গুগলে লগ ইন করার চেষ্টা করেছি। দুর্ভাগ্যক্রমে, আমি ত্রুটি বার্তা পেয়েছি:

Error: redirect_uri_mismatch
The redirect URI in the request: http://127.0.0.1:3000/auth/google_oauth2/callback did not match a registered redirect URI

scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
response_type=code
redirect_uri=http://127.0.0.1:3000/auth/google_oauth2/callback
access_type=offline
approval_prompt=force
client_id=generated_id

এই বার্তাটির অর্থ কী এবং আমি কীভাবে এটি ঠিক করতে পারি? আমি সর্বজনীন-গুগল-অউথ 2 রত্ন ব্যবহার করি ।


অন্য কারওরও সমস্যা রয়েছে বলে মনে রাখবেন যে আপনি https://accounts.google.com/o/oauth2/auth?client_id={client_id}&response_type=token&redirect_uri={redirect_uri}&scope={scope}নিজের সম্পূর্ণ অ্যাপ্লিকেশনটি পরীক্ষা করে চালানোর পরিবর্তে কোনও ব্রাউজারের মতো একটি URL অ্যাক্সেস করে এই সমস্যাটি ডিবাগ করতে পারেন ।
জ্যাক এম

আমি লক্ষ্য করেছি, গুগল স্বয়ংক্রিয়ভাবে ইউআরএল উপরের (redirect_uri = "যাই হোক না কেন") ডাবল উদ্ধৃতিতে redirect_uri আবদ্ধ করে এবং এই ত্রুটির ফলস্বরূপ। আমি যদি এই ডাবল উদ্ধৃতিগুলি সরিয়ে ফেলি তবে আমি পরবর্তী পর্দার মধ্য দিয়ে যেতে পারব। এখন, আমরা কীভাবে এই ডাবল উদ্ধৃতিগুলি এড়াতে পারি, যেহেতু এটি গুগল নিজেই স্বয়ংক্রিয়ভাবে পুনঃনির্দেশিত।
অভিষেক সনি

উত্তর:


388

পুনঃনির্দেশিত ইউআরআই (যেখানে প্রতিক্রিয়া ফিরিয়ে দেওয়া হয়েছে) এপিআইস কনসোলে নিবন্ধিত হতে হবে এবং ত্রুটিটি ইঙ্গিত করছে যে আপনি এটি করেননি, বা এটি সঠিকভাবে করেননি।

আপনার প্রকল্পের জন্য কনসোলে যান এবং API অ্যাক্সেসের নীচে দেখুন। পুনঃনির্দেশিত ইউআরআইয়ের একটি তালিকা সহ আপনার client IDclient secretসেখানে দেখতে হবে। আপনি যে ইউআরআই চান তা যদি তালিকাভুক্ত না হয় তবে সেটিংস সম্পাদনা ক্লিক করুন এবং ইউআরআই তালিকাতে যুক্ত করুন।

সম্পাদনা: (নীচে একটি উচ্চ রেট দেওয়া মন্তব্য থেকে) নোট করুন যে গুগল এপিআই কনসোল আপডেট করা এবং সেই পরিবর্তনটি উপস্থিত হতে কিছুটা সময় নিতে পারে। সাধারণত মাত্র কয়েক মিনিট তবে কখনও কখনও এটি আরও দীর্ঘ বলে মনে হয়।


9
এক ধরণের যাদু রয়েছে, কারণ আমি যখন এক ঘন্টা আগে একই কলব্যাক চেষ্টা করেছি তখন এটি কাজ করে না, তবে এখন এটি কাজ করছে। যাইহোক ধন্যবাদ!
ব্যবহারকারী984621

337
একটি অনুরূপ সমস্যার মধ্যে দৌড়ে, এবং নোট করতে চেয়েছিলেন যে গুগল এপিআই কনসোল আপডেট করা এবং সেই পরিবর্তনটি উপস্থিত হতে কিছুটা সময় নিতে পারে। সাধারণত মাত্র কয়েক মিনিট তবে কখনও কখনও এটি আরও দীর্ঘ বলে মনে হয়।
sdolphin

31
আমাকে @ বাজিলের উত্তরটি সম্পূর্ণ করতে দাও: আমি যে বার্তা পেয়েছি তাতে তারা ইউআরআই " লোকালহোস্ট: 8080 " উল্লেখ করেছে (যা অবশ্যই অভ্যন্তরীণ গুগল কনফিগারেশন বলে মনে হচ্ছে)। আমি সেইটির জন্য অনুমোদিত ইউআরআই পরিবর্তন করেছি, " লোকালহোস্ট: 8080 ", এবং বার্তাটি আর হাজির হয়নি ... এবং ভিডিও আপলোড হয়েছে ... এপিআইএস ডকুমেন্টেশন খুব লম্পট ... প্রতিবার আমার সাথে কিছু কাজ করার আছে গুগল এপিআইএস, আমি কেবল "ভাগ্যবান" বোধ করি তবে এ সম্পর্কে ভাল ডকুমেন্টেশনের অভাব রয়েছে .... :(
ডেভিড এল

7
আপনার ব্রাউজারে একটি ব্যক্তিগত / ছদ্মবেশ উইন্ডো খুলুন এবং আবার চেষ্টা করুন। কখনও কখনও এটি ক্যাশিংয়ের সমস্যাটিকে ঠিক করে দেয়।
ডানক

17
"এপিআই ও অথ> শংসাপত্রসমূহ" এ গুগল কনসোলে গুগলের কোনও পুনর্নির্দেশ ইউরির কোনও বিকল্প নেই তবে আমি কোনও নতুন ক্লায়েন্ট আইডি তৈরি করেছি বা কোনও নতুন কী উত্পন্ন করি তাতে কিছু যায় আসে না, কেবলমাত্র ইউআরএই থেকে পুনঃনির্দেশিত uri নির্দিষ্ট করার কোনও উপায় নেই গুগল কনসোল
ব্যবহারকারী 3338098

114

আমার ক্ষেত্রে এটি ছিল wwwএবং non-wwwইউআরএল। আসল সাইটে wwwইউআরএল ছিল এবং গুগল বিকাশকারী কনসোলের অনুমোদিত পুনর্নির্দেশের ইউআরআই রয়েছে non-www। অতএব, ইউআরআই পুনর্নির্দেশের ক্ষেত্রে অমিল রয়েছে। আমি Authorized Redirect URIsগুগল বিকাশকারী কনসোলে wwwইউআরএল আপডেট করে এটি সমাধান করেছি ।

অন্যান্য সাধারণ ইউআরআই মিল নেই:

  • ব্যবহার http://অনুমোদিত পুনর্চালনা URI উল্লিখিত এবং https://প্রকৃত URL, অথবা ভাইস বিপরীতভাবে যেমন
  • চিহ্ন স্ল্যাশ (ব্যবহার http://example.com/অনুমোদিত পুনর্চালনা URI উল্লিখিত) ও স্ল্যাশ (trailing ব্যবহার করছেন না http://example.comপ্রকৃত URL হিসেবে), অথবা ভাইস বিপরীতভাবে

গুগল বিকাশকারী কনসোলের ধাপে ধাপে স্ক্রিনশটগুলি এখানে দেওয়া হয়েছে যাতে যাঁরা বিকাশকারী কনসোল পৃষ্ঠাটি ইউআরআইগুলি পুনঃনির্দেশ করতে আপডেট করতে অসুবিধা পান তাদের পক্ষে এটি সহায়ক হবে।

  1. Https://console.developers.google.com এ যান

  2. আপনার প্রকল্প নির্বাচন করুন

আপনার প্রকল্প নির্বাচন করুন

  1. মেনু আইকনে ক্লিক করুন

মেনু আইকনে ক্লিক করুন

  1. API Managerমেনুতে ক্লিক করুন

এপিআই ম্যানেজার মেনু নির্বাচন করুন

  1. Credentialsমেনুতে ক্লিক করুন । এবং এর অধীনে OAuth 2.0 Client IDs, আপনি আপনার ক্লায়েন্টের নাম পাবেন। আমার ক্ষেত্রে, এটি হয় Web Client 1। এটিতে ক্লিক করুন এবং একটি পপআপ উপস্থিত হবে যেখানে আপনি অনুমোদিত জাভাস্ক্রিপ্টের উত্স এবং অনুমোদনপ্রাপ্ত ইউআরআই সম্পাদনা করতে পারবেন ।

শংসাপত্র মেনু নির্বাচন করুন

এখানে প্রকল্প এবং ক্লায়েন্ট আইডি তৈরির বিষয়ে একটি গুগল নিবন্ধ রয়েছে ।


9
এই উত্তরটি সত্যই উচ্চতর দিকে ঠেলে দেওয়া দরকার, কারণ এটি আসল উত্তর সরবরাহ করে। আমাদের ঠিক একই সমস্যা ছিল এবং এটি এটি সমাধান করতে সহায়তা করেছে - ধন্যবাদ!
উইনা

4
আমার সমস্যাটি ছিল আমি কী করব তা জানতাম, তবে এটি ইউআইয়ের মধ্যে কোথায় পাওয়া যাবে তা নয়। এখানে স্ক্রিনশট সাহায্য করেছে। ধন্যবাদ।
অ্যালেন

3
আমি অনুমোদিত জাভাস্ক্রিপ্টের উত্সটি খালি রেখেছি এবং অনুমোদিত ইউআরআইগুলিকে 127.0.0.1/google_account/authentication হিসাবে পুনঃনির্দেশিত করেছি এবং এটি আমার কাছ থেকে কাজ করেছে।
কৃষ

1
আপনি আমার প্রশ্নে আমাকে সাহায্য করতে পারেন? stackoverflow.com/questions/37307612/...
LatentDenis

আমাকে দয়া করে সাহায্য. stackoverflow.com/questions/41270512/…
অটুট

91

যদি আপনি Google+ জাভাস্ক্রিপ্ট বোতামটি ব্যবহার করেন তবে আপনাকে postmessageপ্রকৃত ইউআরআইয়ের পরিবর্তে ব্যবহার করতে হবে। গুগলের ডক্স কোনও কারণে স্পষ্টভাবে এটি বিবরণ না করায় এটি খুঁজে পেতে আমার প্রায় পুরো দিন লেগেছে।


8
যেহেতু ত্রুটি বার্তাটি গুগল করার সময় এই প্রশ্নটি শীর্ষ হিট তাই এখানে কিছু অতিরিক্ত পয়েন্টার রয়েছে। মাইক যেমনটি বলেছেন, আপনার পুনঃনির্দেশিত ইউআরআইয়ের জন্য "পোস্টম্যাসেজ" ব্যবহার করুন। আপনাকে এটি 2 জায়গায় নির্দিষ্ট করতে হবে (যদি আপনি ওয়েব-অ্যাপ-সার্ভার-প্রবাহ ব্যবহার করছেন)। একটি জাভাস্ক্রিপ্টের জি-সাইন ইন বোতামে রয়েছে। অন্যটি আপনার সার্ভার কোডে স্বাক্ষর অনুমোদনের ক্লায়েন্টে রয়েছে।
রব হোয়াইটসাইড

দুর্দান্ত উত্তর আমি জাভাস্ক্রিপ্টের সাথে পোস্ট করছিলাম এবং গুগল এপিআই কনফিগারেশন.এফপি ফাইলটিতে 'oauth2_redirect_uri' => 'পোস্টমেসেজ' সেট করার দরকার ছিল।
ব্যবহারকারী 2998553

4
পোস্টমেজেজ দুর্দান্ত শোনাচ্ছে তবে এটি অকেজোError: invalid_request origin parameter is required!
ফলশ্রুতিতে ব্যবহারকারীর

10
কয়েক ঘন্টা এই সমস্যাটি সমাধান করার চেষ্টা করার পরে, আপনার উত্তর আমাকে অনেক সাহায্য করবে! গুগল ডকুমেন্টেশন খুব পরিষ্কার নয়। : সার্ভার প্রান্তের, যদি আপনি Google API ক্লায়েন্টের গ্রন্থাগার ব্যবহার করেন, আপনি এই কোড ব্যবহার করা উচিত $client->setRedirectUri('postmessage');পরিবর্তে$client->setRedirectUri('http://your.url...');
Guicara

3
বাহ .... @ গুইচারা সমাধানটি দেয়ালের বিরুদ্ধে মাথা ঘোরানোর কয়েক ঘন্টা পরে আমার জন্য কাজ করেছিল।
ডিজেথমস

52

যে কোনও প্রবাহে আপনি ক্লায়েন্টের পক্ষে কোনও অনুমোদনের কোড যেমন GoogleAuth.grantOfflineAccess()এপিআই পুনরুদ্ধার করেছেন এবং এখন আপনি কোডটি আপনার সার্ভারে প্রেরণ করতে চান , এটি পুনরুদ্ধার করতে এবং অ্যাক্সেস এবং টোকেন সংরক্ষণ করতে চান, তারপরে আপনাকে আক্ষরিক স্ট্রিংটি ব্যবহার করতে হবে postmessageredirect_uri এর পরিবর্তে।

উদাহরণস্বরূপ, রুবি ডকের স্নিপেটে বিল্ডিং :

client_secrets = Google::APIClient::ClientSecrets.load('client_secrets.json')
auth_client = client_secrets.to_authorization
auth_client.update!(
  :scope => 'profile https://www.googleapis.com/auth/drive.metadata.readonly',
  :redirect_uri => 'postmessage' # <---- HERE
)

# Inject user's auth_code here:
auth_client.code = "4/lRCuOXzLMIzqrG4XU9RmWw8k1n3jvUgsI790Hk1s3FI"
tokens = auth_client.fetch_access_token!
# { "access_token"=>..., "expires_in"=>3587, "id_token"=>..., "refresh_token"=>..., "token_type"=>"Bearer"}

এমনকি উল্লেখ করার জন্য কেবলমাত্র গুগল ডকুমেন্টেশন postmessageহ'ল এই পুরানো Google+ সাইন-ইন ডক । জি + বন্ধ হওয়ায় এখানে একটি স্ক্রিনশট এবং সংরক্ষণাগার লিঙ্ক রয়েছে এবং এই লিঙ্কটি সম্ভবত চলে যাবে:

উত্তরাধিকার Google+ এপিও ডোক

এটি একেবারেই ক্ষমাযোগ্য নয় যে অফলাইন অ্যাক্সেসের জন্য ডক পৃষ্ঠায় এটি উল্লেখ করা হয়নি। #FacePalm


1
Godশ্বর এটি শোধ করলেন, আপনার পোস্টটি সম্পূর্ণ অযৌক্তিক মনে হয়েছিল, তবে এটি কেবল মনোমুগ্ধকর মতো কাজ করেছিল। অনেক অনেক ধন্যবাদ, বন্ধু !!!
mariobgr

@ এমরিওবগ্রি হ্যাঁ, এখানে অন্যান্য উত্তর উল্লেখ করা হয়েছে postmessage, তবে আমি grantOfflineAccessকখনই এই ক্রেজি ডাব্লু ডকুমেন্টেড হ্যাকটি আমার জন্য প্রয়োজনীয় ছিল তার নির্দিষ্ট পরিস্থিতি (উদাহরণস্বরূপ ) দিতে চেয়েছিলাম । : পিআই এটিও সত্য হতে চায়নি। :) আমার কয়েক ঘন্টা মাথা ব্যাথা ব্যয় করুন।
জেফ ওয়ার্ড

ধন্যবাদ! এটাই আমার দরকার ছিল।
ernbrn

এটি গুগলের দৃষ্টি আকর্ষণ করা প্রয়োজন। এটি একেবারে ভয়ঙ্কর।
গ্লেড

অবিশ্বাস্য তবে সত্য ... O__o
mlb

41

আমার ওয়েব অ্যাপ্লিকেশনটির জন্য আমি লিখে আমার ভুল সংশোধন করেছি

instead of : http://localhost:11472/authorize/
type :      http://localhost/authorize/

ভাগ করে নেওয়ার জন্য ধন্যবাদ, এটি সাহায্য করে। আমি এই আটকে ছিল কারণ GitHub OAuth2 তে এপিআই নেই না পোর্ট নম্বর মুছে ফেলার জন্য প্রয়োজন।
ফ্লোরিসা

এটি আমার পক্ষেও কাজ করেছিল। আমি এই কোর্সটি অনুসরণ করছিলাম: asp.net/mvc/overview/security/… এবং 'ইউরি ত্রুটি পুনর্নির্দেশ' পাচ্ছি । আমি পরিবর্তন করেছি স্থানীয় হোস্ট: 44334 / সাইনইন গুগল থেকে স্থানীয় হোস্ট / সাইনইন গুগল এটা কাজ করে। দরকারী টিপ জন্য অনেক ধন্যবাদ।
ফ্রেনকিবি

1
তোমাকে অনেক ধন্যবাদ. আমি এই github.com/google/google-api-dotnet-client- উদাহরণ এবং পরীক্ষার জন্য ছিল "অনুরোধে পুনর্নির্দেশ ইউআরআই" প্রতিবার যখন এটি চালানো হয়েছে তখন অন্য কোনও বন্দর থেকে উপস্থিত হয়েছিল। এটি আমাকে অনেক সাহায্য করেছিল। কি ঘটছে তা বুঝতে সময় লাগতো!
আলেজান্দ্রো লোজডজিজেস্কি

ধন্যবাদ, এটি আমার জন্যও কাজ করেছিল। শুধু বন্দর ছেড়ে দিন! :)
বিদ্বেষ

31

গুগল চেক প্রোটোকল হিসাবে "HTTP: //" বা "https: //" প্রোটোকল পরীক্ষা করে দেখুন। তালিকার উভয় URL যুক্ত করা ভাল।


10
আমি আশা করি আমি দুই ঘন্টা আগে আপনার
উত্তরটিতে

1
না, আপনি https ব্যবহার করছেন তা নিশ্চিত করা আরও ভাল।
ব্র্যাড কোচ

7

এটি বেশ বিস্ময়কর এবং বিরক্তিকর বলে মনে হচ্ছে যে কোনও "এক" সমাধান নেই। আমার জন্য http: // লোকালহোস্ট: 8000 কাজ করে নি তবে http: // লোকালহোস্ট: 8000 / কাজ করেছে।


2
এটি কারণ redirect_uriবিকাশকারীদের কনসোল এবং আপনার অ্যাপ্লিকেশনটিতে অবশ্যই একটি সঠিক ম্যাচ হওয়া উচিত।
টনি গিল

6

আপনি যখন https://code.google.com/apis/console এ আপনার অ্যাপ্লিকেশনটি নিবন্ধভুক্ত করেন এবং ক্লায়েন্ট আইডি তৈরি করেন, আপনি এক বা একাধিক পুনর্নির্দেশ ইউআরআই নির্দিষ্ট করার সুযোগ পাবেন। redirect_uriআপনার লেখক ইউআরআই- এর প্যারামিটারের মানগুলির মধ্যে একটির সাথে ঠিক মেলে।


এবং এটা খুব ফিল্ড গভীর কৌণিক ভিত্তিক লিঙ্কের জন্য সমস্যা রয়েছে Google করতে পারে যেমন একমত নন [সাথে আছেন landed1.github.io/videos.html#/oauth2callback]is একটি কার্যকর URL
অবতরণ করেছে

2
দেখে মনে হচ্ছে url https://code.google.com/apis/consoleআর কোনও বৈধ নয়
অ্যান্টনি কং

আপনার আপডেটের জন্য @ অ্যান্থনিকংকে ধন্যবাদ। আমি একটি লাইভের জন্য url পরিবর্তন করেছি। এখনই চেক করুন।
কাঠির

6

এই উত্তরটি হিসাবে একই এই মাইক এর উত্তর , এবং জেফ এর উত্তর , উভয় সেট redirect_uriথেকে postmessageক্লায়েন্ট সাইড উপর। আমি সার্ভারের দিকটি এবং এই কনফিগারেশনের ক্ষেত্রে বিশেষ পরিস্থিতিতে প্রয়োগ করার বিষয়ে আরও যুক্ত করতে চাই।

টেক স্ট্যাক

ব্যাক-এন্ড

সামনের অংশ

"কোড" প্রবাহ (বিশেষত গুগল OAuth2 এর জন্য)

সংক্ষিপ্তসার: প্রতিক্রিয়া -> সামাজিক লেখকের "কোড" অনুরোধ করুন -> আপনার নিজস্ব ব্যাকএন্ড সার্ভার / ডাটাবেসের ক্ষেত্রে "লগইন" স্থিতি অর্জনের জন্য jwt টোকেনকে অনুরোধ করুন।

  1. ফ্রন্ট্যান্ড (প্রতিক্রিয়া) responseType="code"একটি অনুমোদন কোড পেতে "Google সাইন ইন বোতাম" ব্যবহার করে । (এটি টোকেন নয়, অ্যাক্সেস টোকেন নয়!)
    • গুগল সাইন ইন বোতামটি react-google-loginউপরে বর্ণিত।
    • বোতামটি ক্লিক করে অ্যাকাউন্ট নির্বাচন করার জন্য একটি পপআপ উইন্ডো উপস্থিত হবে up ব্যবহারকারী একটি নির্বাচন করুন এবং উইন্ডোটি বন্ধ হওয়ার পরে, আপনি বোতামটির কলব্যাক ফাংশন থেকে কোডটি পাবেন।
  2. সম্মুখভাগ এটি ব্যাকএন্ড সার্ভারের JWT শেষ পয়েন্টে প্রেরণ করুন।
    • সাথে পোস্ট করুন, অনুরোধ { "provider": "google-oauth2", "code": "your retrieved code here", "redirect_uri": "postmessage" }
  3. আমার জ্যাঙ্গো সার্ভারের জন্য আমি জ্যাঙ্গো REST ফ্রেমওয়ার্ক JWT + জ্যাঙ্গো REST সামাজিক অ্যাথ ব্যবহার করি। জ্যাঙ্গো সামনের দিক থেকে কোডটি পেয়েছে, এটি Google এর পরিষেবা দিয়ে যাচাই করুন (আপনার জন্য সম্পন্ন হয়েছে)। একবার যাচাই হয়ে গেলে এটি জেডাব্লুটিটি (টোকেন )টিকে সামনের দিকে পাঠিয়ে দেবে। ফ্রন্টএন্ড এখন টোকেন কাটা এবং এটি কোথাও সঞ্চয় করতে পারে।
    • সকল REST_SOCIAL_OAUTH_ABSOLUTE_REDIRECT_URI, REST_SOCIAL_DOMAIN_FROM_ORIGINএবং REST_SOCIAL_OAUTH_REDIRECT_URIজ্যাঙ্গো এর settings.pyঅপ্রয়োজনীয় হয় । (এগুলি জ্যাঙ্গো আরইএসটি সামাজিক সামাজিক মাধ্যমে ব্যবহৃত কনস্ট্যান্ট) সংক্ষেপে, আপনাকে জাজানোতে পুনর্নির্দেশ url সম্পর্কিত কিছু সেটআপ করতে হবে না"redirect_uri": "postmessage"মধ্যে ফ্রন্টএন্ড চলা প্রতিক্রিয়া। এটি অর্থবোধ করে কারণ আপনার নিজের পক্ষে যে সামাজিক লিখিত কাজটি করতে হবে তা হ'ল সামনের অ্যাজাক্স-স্টাইলের পোষ্ট অনুরোধ, কোনও ফর্ম যা জমা দেওয়া নয়, তাই ডিফল্টরূপে কোনও পুনঃনির্দেশ ঘটে না। এ কারণেই আপনি কোড + JWT ফ্লো ব্যবহার করছেন এবং সার্ভার-সাইড রিডাইরেক্ট url সেটিংস কোনও প্রভাব ফেলছে না বলে রিডাইরেক্ট ইউআরএল অকেজো হয়ে যায়।
  4. জাজানো REST সামাজিক এথ অ্যাকাউন্ট তৈরির কাজ পরিচালনা করে। এর অর্থ এটি গুগল অ্যাকাউন্ট ইমেল / শেষ নামটি যাচাই করবে এবং এটি ডাটাবেসে কোনও অ্যাকাউন্টের সাথে মেলে কিনা। যদি তা না হয় তবে এটি সঠিক ইমেল এবং প্রথম পদবি ব্যবহার করে আপনার জন্য একটি তৈরি করবে। তবে, ব্যবহারকারীর নামটি youremailprefix717e248c5b924d60আপনার ইমেলটি এমন কিছু হবে youremailprefix@example.com। এটি একটি অনন্য ব্যবহারকারীর নাম তৈরি করতে কিছু এলোমেলো স্ট্রিং যুক্ত করে। এটি ডিফল্ট আচরণ, আমি বিশ্বাস করি আপনি এটি কাস্টমাইজ করতে পারেন এবং তাদের ডকুমেন্টেশন খনন করতে দ্বিধা বোধ করতে পারেন।
  5. সীমানাটি সেই টোকেন সংরক্ষণ করে এবং যখন এটি ব্যাকএন্ড সার্ভারে সিআরইউডি করতে হয়, বিশেষত তৈরি / মুছুন / আপডেট করুন, আপনি যদি নিজের Authorizationশিরোনামে টোকনটি সংযুক্ত করেন এবং ব্যাকএন্ডে অনুরোধ প্রেরণ করেন, জ্যাঙ্গো ব্যাকএন্ড এখন সেই লগইন হিসাবে স্বীকৃত হবে, যা প্রমাণীকৃত ব্যবহারকারী। অবশ্যই, যদি আপনার টোকেনের মেয়াদ শেষ হয়ে যায়, আপনাকে অন্য একটি অনুরোধ করে তা রিফ্রেশ করতে হবে।

ওহ আমার সদাপ্রভু, আমি 6 ঘন্টােরও বেশি সময় ব্যয় করেছি এবং শেষ পর্যন্ত এই অধিকারটি পেয়েছি! আমি বিশ্বাস করি যে এই postmessageজিনিসটি আমি এই প্রথম দেখি । Django + DRF + JWT + Social Auth + Reactসংমিশ্রণে কাজ করা যে কেউ অবশ্যই এর মধ্যে ক্রাশ হবে। আমি বিশ্বাস করতে পারি না যে নিবন্ধটি এখানে উত্তর ছাড়া আর কোনওটিরই উল্লেখ নেই। তবে আমি সত্যিই আশা করি আপনি যদি জ্যাঙ্গো + রিএ্যাক্ট স্ট্যাক ব্যবহার করেন তবে পোস্টটি আপনার প্রচুর সময় সাশ্রয় করতে পারে।


5

2015 জুলাই 15 - লগইনে এই স্ক্রিপ্টটি নিয়ে গত সপ্তাহে সাইন ইন ছিল

<script src="https://apis.google.com/js/platform.js" async defer></script>

কাজ করা বন্ধ করে দিয়ে 400 টির সাথে ত্রুটি ঘটায় Error: redirect_uri_mismatch

এবং বিশদ বিভাগে: redirect_uri=storagerelay://...

আমি এটিকে পরিবর্তন করে সমাধান করেছি:

<script src="https://apis.google.com/js/client:platform.js?onload=startApp"></script>

একই ত্রুটি 400 এর মুখোমুখি হওয়া, তবে স্ক্রিপ্ট পরিবর্তন করা আমার কর্ডোভা ওয়েবভিউয়ের ভিতরে কাজ করে নি not
নিক স্পেস্ক

@ নিকস্পেসেক অনুগ্রহ করে নিখোঁজ ডাবল উক্তিগুলি দায়ী ছিল কিনা তা পরীক্ষা করে দেখুন।
টনি গিল 20

আপনি আমার প্রশ্নে আমাকে সাহায্য করতে পারেন? stackoverflow.com/questions/37307612/...
LatentDenis

5

চেকলিস্ট:

  • httpবা https?
  • &বা &amp;?
  • ট্রেলিং স্ল্যাশ ( /) না খোলা ?
  • (CMD/CTRL)+F, শংসাপত্র পৃষ্ঠাতে সঠিক মিলের জন্য অনুসন্ধান করুন match যদি পাওয়া না যায় তবে নিখোঁজটির জন্য অনুসন্ধান করুন।
  • গুগল এটি রিফ্রেশ না হওয়া পর্যন্ত অপেক্ষা করুন। আপনি ঘন ঘন পরিবর্তন হলে বা এটি পুলে থাকতে পারে যদি প্রতি আধ ঘন্টার মধ্যে ঘটতে পারে। আমার ক্ষেত্রে এটি কার্যকর হতে প্রায় আধ ঘন্টা ছিল।

4

আমার ক্ষেত্রে, আমার শংসাপত্রের অ্যাপ্লিকেশন প্রকারটি "অন্যান্য"। সুতরাং আমি Authorized redirect URIsশংসাপত্রের পৃষ্ঠাতে খুঁজে পাচ্ছি না । এটি অ্যাপ্লিকেশন প্রকারে প্রদর্শিত হচ্ছে বলে মনে হচ্ছে: "ওয়েব অ্যাপ্লিকেশন"। তবে ফাইলটি Download JSONপেতে আপনি বোতামটি ক্লিক করতে পারেন client_secret.jsonএখানে চিত্র বর্ণনা লিখুন

JSON ফাইল খুলুন, এবং আপনি ভালো প্যারামিটার পেতে পারবেন: "redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]। আমি http: // লোকালহোস্ট ব্যবহার করা চয়ন করি এবং এটি আমার পক্ষে ভাল কাজ করে।



4

1
এবং URL এর শেষে "/" অক্ষরটি সম্পর্কে সতর্কতা অবলম্বন করুন। কখনও কখনও প্রয়োজন হয়, অন্যদের সময় না।
আজমেনা

সুতরাং আমরা কী লাইভ ওয়েবসাইটগুলির জন্যও অনুরোধ_রি হিসাবে লোকালহোস্ট রাখতে পারি?
অবিচ্ছেদ্য

4

উপরের সমাধানগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি। নীচে করেছে

অনুমোদিত পুনর্নির্দেশ urlগুলিতে পরিবর্তন করুন - https: // লোকালহোস্ট: 44377 / সাইন ইন-গুগল

আশা করি এটি কাউকে সাহায্য করবে।


যদি আমরা লোকালহোস্ট ব্যবহার করি তবে এটি প্রকাশিত ওয়েবসাইটের জন্যও কাজ করবে। আমার অর্থ যদি এপিআই কনসোলে আমি লোকালহোস্ট অনুরোধটি ইউআরআই যুক্ত করি। ওয়েব সাইটটি লাইভ হয়ে গেলে এটি কীভাবে কাজ করবে? বা লাইভ সাইটগুলির জন্য আমাদের এপিআই কনসোলে প্রকৃত ইউআরআইয়ের আরও একটি সেট স্থাপন করা দরকার?
অবিচ্ছেদ্য


3

রেল ব্যবহারকারীগণ ( সর্বজনীন গুগল-অওথ 2 ডক্স থেকে):

রিয়েলগুলিতে redirect_uri এর জন্য প্রোটোকল মিশ্রণ ঠিক করা

কেবলমাত্র রেইলস.এনভের উপর ভিত্তি করে ওমনিআউটে পুরো_হোস্ট সেট করুন।

# কনফিগারেশন / ইনিশিয়ালাইজারস / অমনিয়াথ.আরবি

ওমনিআথ.কনফিগ.ফুল_হোস্ট = রেলস.এনভি.প্রডাকশন? ? ' https://domain.com ': ' http: // লোকালহোস্ট: 3000 '

স্মরণ রাখুন: "/" লেজকে অন্তর্ভুক্ত করবেন না


3

আপনি যদি এই টিউটোরিয়ালটি ব্যবহার করেন: https://developers.google.com / ity

GO এ এই সমস্যার সমাধান করেছে:

confg = &oauth2.Config{
        RedirectURL:  "postmessage",
        ClientID:   ...,
        ClientSecret: ...,
        Scopes:      ...,
        Endpoint:     google.Endpoint,
}

2

আমার জন্য এটি ছিল কারণ 'অনুমোদিত পুনর্নির্দেশ ইউআরআই'র তালিকায় আমি ভুলের https://developers.google.com/oauthplayground/পরিবর্তে https://developers.google.com/oauthplayground( /শেষে না দিয়ে) রেখেছি ।


1

আমাকে @ বাজিলের উত্তরটি সম্পূর্ণ করতে দিন: আমি যে বার্তা পেয়েছি তাতে তারা ইউআরআই উল্লেখ করেছে "http://localhost:8080/" (যা অবশ্যই অভ্যন্তরীণ গুগল কনফিগারেশন বলে মনে হচ্ছে)। আমি সেইটির জন্য অনুমোদিত ইউআরআই পরিবর্তন করেছি "http://localhost:8080/", এবং বার্তাটি আর উপস্থিত হয়নি ... এবং ভিডিও আপলোড হয়েছে ... এপিআইএস ডকুমেন্টেশন খুব লম্পট ... প্রতিবার যখন আমি গুগল অ্যাপিসের সাথে কিছু কাজ করি, আমি কেবল "ভাগ্যবান" বোধ করে তবে এ সম্পর্কে ভাল ডকুমেন্টেশনের অভাব আছে .... :( হ্যাঁ, আমি এটি কাজ করে চলেছি, তবে কেন এটি ব্যর্থ হয়েছে, বা কেন এটি কাজ করেছিল তা আমি এখনও বুঝতে পারি না ... কেবলমাত্র একটি ছিল ওয়েবে ইউআরআই নিশ্চিত করার জন্য স্থানটি, এবং এটি ক্লায়েন্ট_সেক্রেটস.জসন-এ অনুলিপি করা হয়েছে ... তৃতীয় কোনও জায়গা আছে যেখানে একজনকে একই ইউআরআই লিখতে হবে আমি পাই না ... আমি কেবল ডকুমেন্টেশন পাই না তবে গুগলের জিইউআই ডিজাইন '


1

নতুন কনসোলে ইউআরএলগুলি পুনর্নির্দেশ করতে কোথায় সন্ধান করতে লড়াই করছেন: APIs এবং Auth -> শংসাপত্রগুলি -> OAuth 2.0 ক্লায়েন্ট আইডি -> আপনার সমস্ত পুনর্নির্দেশ url সন্ধান করতে লিঙ্কটি ক্লিক করুন


1

আমাকে API এবং পরিষেবাদি -> শংসাপত্রগুলি -> শংসাপত্র তৈরি করতে -> OAuth -> অন্যান্য এর অধীনে একটি নতুন ক্লায়েন্ট আইডি তৈরি করা দরকার

তারপরে আমি আমার কমান্ড লাইন প্রোগ্রামটি ক্লায়েন্ট_সেক্রেট.জসন ডাউনলোড করে ব্যবহার করেছি যা আমার ইউটিউব অ্যাকাউন্টে আপলোড হচ্ছে। আমি একটি ওয়েব অ্যাপ OAuth ক্লায়েন্ট আইডি ব্যবহার করার চেষ্টা করছিলাম যা আমাকে ব্রাউজারে পুনর্নির্দেশের ইউআরআই ত্রুটি দিচ্ছিল।


0

এই চেকগুলি করার চেষ্টা করুন:

  1. কনসোলে এবং আপনার অ্যাপ্লিকেশনটিতে বান্ডিল আইডি। আমি এই "org.peredovik। এর মতো অ্যাপ্লিকেশনটির বান্ডিল আইডি সেট করতে পছন্দ করি $ {PRODUCT_NAME: rfc1034uthorfier}"
  2. আপনি ট্যাবে URL টি প্রকার যুক্ত করেছেন কিনা তা পরীক্ষা করুন তথ্য কেবল আপনার পরিচয়কারী এবং URL স্কিমগুলিতে আপনার বান্ডিল আইডি টাইপ করুন, সম্পাদকে ভূমিকা সেট করুন
  3. ক্লাউড.google.com এ কনসোলে "এপিআই এবং প্রবন্ধ" -> "সম্মতি স্ক্রিন" আপনার অ্যাপ্লিকেশন সম্পর্কে ফর্ম পূরণ করুন। "পণ্যের নাম" এর জন্য প্রয়োজনীয় ক্ষেত্র।

উপভোগ করুন :)


0

আমার ক্ষেত্রে আমাকে ওয়েব অ্যাপ্লিকেশন / ইনস্টলড অ্যাপ্লিকেশনগুলির জন্য ক্লায়েন্ট আইডি প্রকারটি পরীক্ষা করতে হয়েছিল।

ইনস্টল করা অ্যাপ্লিকেশন: http: // লোকালহস্ট [ইউআরআইগুলি পুনর্নির্দেশ করুন] এই ক্ষেত্রে লোকালহোস্ট কেবল কাজ করে

ওয়েব অ্যাপ্লিকেশন: আপনার বৈধ ডোমেন নাম প্রয়োজন [ইউআরআই পুনঃনির্দেশ:]


0

আপনাকে যা করতে হবে তা হ'ল আপনার বিকাশকারী কনসোলে ফিরে যান এবং এপিআই এবং অথ> সম্মতি স্ক্রিনে যান এবং এটি পূরণ করুন। বিশেষত, পণ্যের নাম।


এছাড়াও, এমন কোনও পণ্যের নাম ব্যবহার করবেন না যা অন্য প্রকল্পেও ব্যবহৃত হয়। নিশ্চিত করুন যে এটি অনন্য।
ফ্লোরিসালা


0

কনসোলে আমার দুটি অনুরোধ ইউআরআই ছিল, http: // xxxxx / ক্লায়েন্ট / এপি / স্প্রেডশিট / লেখক এবং http: // লোকালহোস্ট

আমি এই প্রশ্নের সমস্ত শীর্ষ প্রতিক্রিয়া চেষ্টা করেছি এবং নিশ্চিত করেছিলাম যে এগুলির কোনওটিই আমার সমস্যা নয়।

আমি কনসোল থেকে লোকালহোস্ট সরিয়েছি, আমার প্রকল্পে আমার ক্লায়েন্ট_সেক্রেট.জসন আপডেট করেছি এবং অমিল ত্রুটিটি চলে গেছে।


0

গুগল সাইন ইন নিয়ে আমারও একই সমস্যা ছিল, আমি আমার চুলগুলি টানতে চলেছিলাম !!! আমি গুগল বিকাশকারী কনসোলে গুগল শংসাপত্র প্যানেলে সঠিকভাবে আমার কলব্যাকগুলি প্রবেশ করিয়েছি এখানে আমার পুনর্নির্দেশ url ছিল:

https://www.example.com/signin-google

https://www.example.com/signin-google/

https://www.example.com/oauth2callback

https://www.example.com/oauth2callback/

প্রতিটি জিনিস ঠিক আছে বলে মনে হচ্ছে? কিন্তু এটি এখনও কাজ না হওয়া পর্যন্ত আমি যোগ করেনি আরও একটি ঐন্দ্রজালিক ইউআরএল আমি যোগ সাইনইন গুগল URL (যা ডিফল্ট Google কলব্যাক হয়) ছাড়া WWW এবং সমস্যা সমাধান।

এটিকে অ্যাকাউন্টে গ্রহণ করুন (আপনার ডোমেনের উপর নির্ভর করে) আপনাকে www ইউআরএল সহ এবং ছাড়া উভয়ই যোগ করার প্রয়োজন হতে পারে


0

আমার ফ্রন্টএন্ড অ্যাপ এবং ব্যাকএন্ড এপি আছে।

আমার ব্যাকএন্ড সার্ভার থেকে আমি গুগল এপিআই দিয়ে পরীক্ষা করছিলাম এবং এই ত্রুটির মুখোমুখি হয়েছি। আমার পুরো সময়কালে আমি ভাবছিলাম যে কেন এটি দেওয়া দরকার কেন redirect_uriএটি কেবল ব্যাকএন্ডের জন্য, সামনের দিক থেকে এটি বোঝা যায়।

আমি যা করছিলাম তা redirect_uriসার্ভার থেকে আলাদা (বৈধ হলেও) দিচ্ছিল (এটি কেবল স্থানধারক হিসাবে ধরে নেওয়া, এটি কেবল গুগলে নিবন্ধিত হতে হবে) তবে আমার ফ্রন্টএন্ড url যা টোকন কোড তৈরি করেছে তা আলাদা ছিল। সুতরাং যখন আমি আমার সার্ভারের পাশের পরীক্ষায় এই কোডটি পাস করছিলাম (যার জন্য পুনঃনির্দেশ-ইউরি আলাদা ছিল) তখন আমি এই ত্রুটির মুখোমুখি হয়েছি।

সুতরাং এই ভুল করবেন না। নিশ্চিত করুন যে আপনার সীমানাটি redirect_uriআপনার সার্ভারের মতোই Google যেমন সত্যতা যাচাই করার জন্য এটি ব্যবহার করে।


0

নীচে ত্রুটির কারণ রয়েছে: redirect_uri_mismatch সমস্যাটি ঘটে:

  1. আপনার গুগল প্রকল্পে ইউআরএল ফিল্ড ফাঁকা পুনর্নির্দেশ করুন।
  2. পুনর্নির্দেশ URL আপনার সাইটের সাথে মেলে না
  3. গুরুত্বপূর্ণ! এটি কেবলমাত্র ওয়ার্কিং ডোমেন যেমন উদাহরণ.কম, বুক ডট কম ইত্যাদির সাথে কাজ করবে (স্থানীয় হোস্ট বা এডাব্লুএস এলবি ইউআরএল নিয়ে কাজ করবে না)

ডোমেন URL ব্যবহার করার জন্য প্রস্তাবিত


গুগল কি সবসময় ভুল redirect_uri পরম তৈরি করে? এটি লোকালহোস্ট হিসাবে উত্পাদিত হয়েছে: এক্সএন্ডএক্সএক্সএক্স একটি র্যান্ডম পোর্ট নম্বর সহ, আমি ক্লায়েন্ট তৈরির সেট আপ সেট আপ ইউরি উপেক্ষা করে।
এ মাকেরেভিচ

0

কৌশলটি হ'ল আইডি তৈরির সময় ডান পুনর্নির্দেশ url ইনপুট করা। আমি দেখতে পেয়েছি যে একবার 'সম্পাদনা' এর মাধ্যমে আইডিটি তৈরি হয়ে গেলে পুনর্নির্দেশ url আপডেট করা কাজটি সম্পন্ন করে না। আমার জন্য যা কাজ করেছিল তা হ'ল পুরো 'বিক্রেতা' ফোল্ডারটি নকল করে 'aউথ' ফাইলটি যেখানে একই জায়গায় অনুলিপি করা হয়েছে (ঠিক যতক্ষণ না আপনি সফলভাবে টোকেনটি তৈরি করেন এবং তারপরে আপনি সদৃশ 'বিক্রেতা' ফোল্ডারটি মুছতে পারেন)। এটি কারণ '../vendor/autoload' এর মাধ্যমে বিক্রেতা ফোল্ডারের দিকে ইঙ্গিত করার চেষ্টা করা আমার পক্ষে কাজ করে নি।

সুতরাং, আপনার বিদ্যমান সমস্যাযুক্ত ক্লায়েন্ট OAuth আইডি মুছুন এবং এই পদ্ধতির চেষ্টা করুন, এটি কার্যকর হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.