ফেসবুক Oauth 2.0 অ্যাক্সেস টোকেনের মেয়াদ শেষ?


124

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


4
এই প্রশ্নের কিছু বিশদ যুক্ত করতে: এমনকি ব্যবহারকারী তার ফেসবুক পাসওয়ার্ড পরিবর্তন করলেও অফলাইন_অ্যাক্স অকার্যকর হয়ে যায়। সুতরাং পুরানোটিকে ব্যবহার করার সময় ত্রুটিগুলি গ্রহণ করলে নিরাপদ খেলা এবং নতুন অ্যাক্সেস টোকেনটি পাওয়া ভাল-
হোং লং

2
রেফারেন্সটি যুক্ত করতে: developers.facebook.com/blog/post/500
Hoàng Long

2
হ্যাঁ ছেলেরা, আপনি সকলেই কেবল রক করেন। প্রশ্ন যাই হোক না কেন, আমি কেবল এটি সমাধান করেছি ... আপনাকে ধন্যবাদ
Vinay

3
দেখে মনে হচ্ছে ফেসবুক 1 ই মে অফলাইন_অ্যাক্সেসের অনুমতিটি হ্রাস করছে। ভবিষ্যতে সমস্ত অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যাবে যখন "মেয়াদোত্তীর্ণ সময়" (60 দিন) শেষ হয়ে যাবে, ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করে, ব্যবহারকারী আপনার অ্যাপ্লিকেশনটিকে অনুমোদন দেয়, বা ব্যবহারকারী লগ আউট করে। এপিআই । পিএস আমি নিশ্চিত নই যে ফেসবুক কেন নতুন "মেয়াদোত্তীর্ণ সময়" 60 দিনের মধ্যে নির্ধারণ করছে যদি অ্যাক্সেস টোকেনগুলি লগআউটগুলিতে এখনও মেয়াদ শেষ হয়ে যায় (মনে হয় ব্যবহারকারীরা 60 দিনের মধ্যে ভালভাবে লগআউট করবেন)। হয়তো আমি কিছু মিস করছি ... মেয়াদোত্তীর্ণ
স্টিভেন ওয়েক্সার

1
অ্যাক্সেস_ টোকেন আচরণটি এখন পরিবর্তিত হচ্ছে, আপনার জুলাই ২০১২ "ব্রেকিং পরিবর্তনগুলি" দেখা উচিত - অফলাইন_অ্যাক্সেসের অনুমতিটি অবচয় করা হচ্ছে এবং অ্যাক্সেস_ টোকনে দীর্ঘ জীবন চক্র থাকবে।
কডেনিনজা

উত্তর:


64

কিছুটা খনন করার পরে, আমি এটি খুঁজে পেয়েছি। এটি উত্তর বলে মনে হচ্ছে:

আপডেট (11 / এপ্রিল / 2018)

  • টোকেনটি প্রায় 60 দিন পরে শেষ হবে।
  • আপনার অ্যাপ্লিকেশনটি ব্যবহার করা ব্যক্তি ফেসবুকের সার্ভারগুলিতে একটি অনুরোধ জানালে 90 দিন পর্যন্ত প্রতিদিন একবার টোকেনটি রিফ্রেশ হবে।
  • সমস্ত অ্যাপ্লিকেশন টোকেনগুলি আপনার অ্যাপ্লিকেশনটি ব্যবহার করে এমন ব্যক্তির সম্মতিতে প্রতি 90 দিনের মধ্যে পুনর্নবীকরণ করা প্রয়োজন।

ফেসবুক পরিবর্তন ঘোষণা (10/04/2018)

ফেসবুক টোকেনের মেয়াদোত্তীকরণ পৃষ্ঠা আপডেট করেছে (10/04/2018)

অফলাইন_অ্যাক্সেস: আপনার অ্যাপ্লিকেশনটি যে কোনও সময় ব্যবহারকারীর পক্ষে অনুমোদিত অনুরোধগুলি সম্পাদন করতে সক্ষম করে। ডিফল্টরূপে, সর্বাধিক অ্যাক্সেস টোকেনগুলি স্বল্প সময়ের মধ্যে পরে মেয়াদ শেষ হয়ে যায় যখন অ্যাপ্লিকেশনগুলি সক্রিয়ভাবে অ্যাপ্লিকেশনটি ব্যবহার করছে তখন কেবল ব্যবহারকারীদের পক্ষ থেকে অনুরোধ করে। এই অনুমতিটি অ্যাক্সেস টোকনকে আমাদের OAuth শেষ পয়েন্টটি দীর্ঘকালীন করে দেয়।

এটির অনুমতি মূল্য অনুরোধ করা হয়েছে।

http://developers.facebook.com/docs/authentication/permissions

হালনাগাদ

অফলাইন_অ্যাক্সেসের অনুমতি কিছুক্ষণ আগে সরানো হয়েছে।

https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/


2
এর প্রতিক্রিয়া হিসাবে, আমি একটি ওপেন সোর্স লাইব্রেরি শুরু করেছি যা আপনার ছেলের কাছে কিছুটা কার্যকর হতে পারে। এটি একটি ওআউথ লিবিব যার লক্ষ্য ওআউথ বাস্তবায়ন সহ সমস্ত সামাজিক নেটওয়ার্ককে সমর্থন করা। এটি ইতিমধ্যে অফলাইন পোস্টিং সহ বর্ধিত অনুমতিগুলি সমর্থন করে। কোড.google.com/p/socialoauth
টেন্ড্রিড

এমনকি ফেসবুকে যদি ব্যবহারকারীরা তাদের পাসওয়ার্ড পরিবর্তন করেন তবে অফলাইন_অ্যাক্সেস টোকেনগুলির মেয়াদও শেষ হয়ে যায়।
বেম্মু

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

24
তাদের এপিআই ডকুমেন্টেশন অনুসারে অফলাইন_অ্যাক্সেস 2 মে, ২০১২ পর্যন্ত আর সমর্থিত হবে না
বেন লেশ

@ ট্রেন্ড্রিড আপনার গ্রন্থাগারটি কেবল ফেসবুক এবং টুইটার সমর্থন করে।
মারিওরাফ্ট

30

এটি চেষ্টা করুন এটি আপনার জন্য পুরোপুরি সহায়তা করবে

https://graph.facebook.com/oauth/authorize?
    client_id=127605460617602&
scope=offline_access,read_stream,user_photos,user_videos,publish_stream&
    redirect_uri=http://www.example.com/

আজীবন অ্যাক্সেস টোকেন পেতে আপনাকে ব্যবহার করতে হবে scope=offline_access

এর অর্থ scope=offline_accessহ'ল: -

আপনার অ্যাপ্লিকেশনটি যে কোনও সময় ব্যবহারকারীর পক্ষে অনুমোদিত অনুরোধগুলি সম্পাদন করতে সক্ষম করে। ডিফল্টরূপে, সর্বাধিক অ্যাক্সেস টোকেনগুলি স্বল্প সময়ের মধ্যে পরে মেয়াদ শেষ হয়ে যায় যখন অ্যাপ্লিকেশনগুলি সক্রিয়ভাবে অ্যাপ্লিকেশনটি ব্যবহার করছে তখন কেবল ব্যবহারকারীদের পক্ষ থেকে অনুরোধ করে। এই অনুমতিটি অ্যাক্সেস টোকনকে আমাদের OAuth শেষ পয়েন্টটি দীর্ঘকালীন করে দেয়।

তবে ফেসবুকের ভবিষ্যতের আপগ্রেড অনুযায়ী অফলাইন_সেস কার্যকারিতাটি 3 শে অক্টোবর, ২০১২ থেকে চিরকালের জন্য অবচয় করা হবে and এবং ব্যবহারকারীকে 60 দিনের দীর্ঘকালীন অ্যাক্সেস টোকন দেওয়া হবে এবং অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার আগে ফেসবুককে জানানো হবে বা আপনি আপনার কাস্টমটি পেতে পারেন ফেসবুক এপিআই থেকে মেয়াদোত্তীর্ণ মান আনার জন্য বিজ্ঞপ্তি কার্যকারিতা ..


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

21

নোট করুন যে ফেসবুক এখন টোকেনের পক্ষে অফলাইন_অ্যাক্সেসের অনুমতি হ্রাস করছে যার জন্য আপনি মেয়াদ শেষ করতে "আপগ্রেড" করার জন্য অনুরোধ করতে পারেন। আমি এখন নিজেই এটি নিয়ে কাজ করছি, তাই আমার বলার মতো বেশি কিছু নেই, তবে এই দস্তাবেজটি সহায়তা করতে পারে:

https://developers.facebook.com/docs/offline-access-deprecation/


17

আমি ওপি হিসাবে একই প্রশ্নটি নিয়ে এখানে এসেছি, তবে অফলাইন_স্যাক্স ব্যবহারের পরামর্শ দেওয়া উত্তরগুলি আমার জন্য লাল পতাকা উত্থাপন করছে।

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

আমি এই বৈশিষ্ট্যটি একটি স্বল্প টোকেন আজীবন কাজ করতে ব্যবহার করব না; এটা তার উদ্দেশ্য উদ্দেশ্য নয়। প্রকৃতপক্ষে, টোকেন আজীবন নিজেই একটি সুরক্ষা বৈশিষ্ট্য। আমি এখনও এই টোকেনগুলির যথাযথ ব্যবহার সম্পর্কে বিশদটি খুঁজছি (আমি কী তা অবিরত রাখতে পারি? কীভাবে আমি তাদের নিরাপদ করব / করব? ফেসবুক কী মূল ওপেনটি ওএথ ২.০ "রিফ্রেশ টোকন" এম্বেড করে? যদি তা না হয় তবে এটি কোথায় এবং / অথবা কীভাবে আমি রিফ্রেশ করব?), তবে আমি নিশ্চিত যে অফলাইন_অ্যাক্সেস সঠিক উপায় নয়।


1
ডেভিড এখানে একই সন্দেহ। আপনি কীভাবে অফলাইনে অ্যাক্সেসের জন্য সঞ্চিত টোকেনগুলি সুরক্ষিত রাখতে আরও তথ্য পেয়েছেন?
নিল আইস

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

8

হ্যাঁ, তাদের মেয়াদ ফুরিয়েছে। একটি 'মেয়াদ উত্তীর্ণ' মান রয়েছে যা 'অ্যাক্সেস_ টোকেন' বরাবর উত্তীর্ণ হয় এবং আমি যা বলতে পারি তা থেকে প্রায় 2 ঘন্টা। আমি অনুসন্ধান করছি, কিন্তু দীর্ঘ মেয়াদোত্তীর্ণ সময়ের জন্য অনুরোধ করার কোনও উপায় আমি দেখতে পাচ্ছি না।


3
আপনি যদি 'অফলাইন_অ্যাক্সেস' অনুমতিটির জন্য অনুরোধ করেন, টোকেনটির মেয়াদ শেষ হবে না।
ব্রেন্ডন বার্গ

1
@ ব্রেন্ডন: তবে ব্যবহারকারী তার ফেসবুক পাসওয়ার্ড পরিবর্তন করার সাথে সাথে এটি অবৈধ হয়ে যাবে
হোয়াং লং

@ হোওংলং এর কোন রেফারেন্স?
চার্লস প্রকাশ দাশারি

6

যেহেতু আমার একই সমস্যা ছিল - বেন বিডিংটনের কাছ থেকে এই বিষয়ে দুর্দান্ত পোস্টটি দেখুন, যিনি এই সমস্ত বিষয়কে ভুল টোকেন এবং অনুরোধের জন্য প্রেরণের জন্য সঠিক টাইপ দিয়ে ব্যাখ্যা করেছিলেন।

http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/


4

আপনি যখনই ফেসবুকের মাধ্যমে ব্যবহারকারীরা আপনার সাইটে লগইন করেন আপনি সর্বদা ব্যবহারকারীর অ্যাক্সেস টোকনকে রিফ্রেশ করতে পারেন। অফলাইন অ্যাক্সেস আপনাকে আজীবন অ্যাক্সেস টোকেন পাওয়ার গ্যারান্টি দিতে পারে না, যখনই ব্যবহারকারী আপনাকে অ্যাপ্লিকেশন অ্যাক্সেস প্রত্যাহার করে বা ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করে।

ফেসবুক থেকে উদ্ধৃত http://developers.facebook.com/docs/authentication/

দ্রষ্টব্য: যদি অ্যাপ্লিকেশনটি অফলাইন_অ্যাক্সেসের অনুমতি না চেয়ে থাকে তবে অ্যাক্সেস টোকেন সময়সীমাবদ্ধ। ব্যবহারকারী যখন ফেসবুক থেকে লগ আউট করেন তখন সময়-সীমাবদ্ধ অ্যাক্সেস টোকেনটিও অবৈধ হয়ে যায়। যদি অ্যাপ্লিকেশনটি ব্যবহারকারীর কাছ থেকে অফলাইন_অ্যাক্সেসের অনুমতি পেয়ে থাকে তবে অ্যাক্সেস টোকেনটির মেয়াদ শেষ হবে না। তবে এটি অকার্যকর হয়ে যায় যখনই ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করে।

ধরে নিন আপনি ব্যবহারকারীর ফেসবুক uid সংরক্ষণ করেছেন এবং আপনার ডাটাবেজে একটি ব্যবহারকারী টেবিলটিতে অ্যাক্সেস টোকেন করেছেন, প্রতিবার ব্যবহারকারী "ফেসবুক উইথ ফেসবুক" বোতামটিতে ক্লিক করলে আপনি ফেসবুক জাভাস্ক্রিপ্ট এপিআই ব্যবহার করে লগইনটি পরীক্ষা করে দেখুন এবং তারপরে প্রতিক্রিয়া থেকে সংযোগের অবস্থাটি পরীক্ষা করে দেখুন , ব্যবহারকারী যদি আপনার সাইটের সাথে সংযুক্ত থাকে তবে আপনি সারণীতে অ্যাক্সেস টোকেন আপডেট করতে পারবেন।


3

দীর্ঘ জীবিত / অ-মেয়াদোত্তীর্ণ (পৃষ্ঠাগুলি) একের জন্য একটি স্বল্প জীবন্ত অ্যাক্সেস টোকেন বিনিময় করতে এটি হিট করুন:

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

1

ফেসবুক অ্যাকাউন্টে লগইন করুন এবং আপনার অ্যাপ্লিকেশন সেটিংস সম্পাদনা করুন (অ্যাকাউন্ট -> অ্যাপ্লিকেশন সেটিং -> আপনার অ্যাকাউন্ট ব্যবহার করা অ্যাপ্লিকেশনটির অতিরিক্ত অনুমতি)। অনুমতিটি আনচেক করুন (আমি যখন অ্যাপ্লিকেশনটি ব্যবহার করছি না তখন আমার ডেটা অ্যাক্সেস করুন (অফলাইন_অ্যাক্সেস))। তারপরে আপনি যখন অ্যাপ্লিকেশনটিতে লগ ইন করবেন তখন মুখ একটি নতুন টোকন জারি করবে।


1

বেসিক ফেসবুক টোকেনটি এক ঘন্টার মধ্যে শেষ হয়। তবে আপনি দীর্ঘমেয়াদী টোকেন পেতে 'এক্সচেঞ্জ' টোকেন ব্যবহার করতে পারেন https://developers.facebook.com/docs/facebook-login/access-tokens

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token} 

0

আপনি যখন ফেসবুক গ্রাফ এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করেন তখন নিম্নলিখিত জিনিসগুলি পরীক্ষা করুন।

1) অ্যাপ্লিকেশন সংযুক্ত ইউআরএল আপনার "redirect_uri" সংযুক্ত URL এর ভিত্তি হওয়া উচিত: - www.x-minds.org/fb/connect/ redirect_uri - www.x-minds.org/fb/connect/redirect 2) আপনার "redirect_uri" "উভয় ক্ষেত্রেই সমান হওয়া উচিত (যখন আপনি যাচাইকরণ কোডের জন্য অনুরোধ করবেন এবং অ্যাক্সেস_ টোকেনের জন্য অনুরোধ করবেন) redirect_uri - www.x-minds.org/fb/connect/redirect 3) আপনি যখন অনুরোধ করবেন তখন আপনাকে আর্গুমেন্টটি এনকোড করা উচিত অ্যাক্সেস_ টোকেন 4) আপনি যখন অ্যাক্সেস_ টোকেনের জন্য অনুরোধ করবেন তখন আর্গুমেন্ট (টাইপ = ক্লায়েন্ট_ক্রেড) পাস করা উচিত নয়। অনুমোদন সার্ভারটি সেশন অংশ ছাড়াই একটি টোকেন জারি করবে। আমরা এই টোকেনটি "me" ওরফে গ্রাফ এপিআইতে ব্যবহার করতে পারি না। এই টোকেনটির দৈর্ঘ্য (40) হবে তবে সেশনের অংশের সাথে একটি টোকেনটির দৈর্ঘ্য (81) থাকবে। সেশন অংশ ব্যতীত অ্যাক্সেস টোকেন কিছু ক্ষেত্রে কাজ করবে

উদাহরণস্বরূপ: - https://ographic.facebook.com/ ? অ্যাক্সেস_ টোকেন = 116122545078207 | EYWJJYqrdgQgV1bfueck320z7mm। তবে "আমি" ওরফে গ্রাফ এপিআই সেশনের অংশের সাথে শুধুমাত্র টোকেন নিয়ে কাজ করবে।


0

টোকেনগুলি ঠিক কখন শেষ হবে তা আমি জানি না, তবে তারা তা করে, অন্যথায় অফলাইনে অনুমতি দেওয়ার বিকল্প নেই।

যাইহোক, কখনও কখনও ব্যবহারকারীকে অফলাইন অনুমতি দেওয়ার প্রয়োজন হয় ওভারকিল। আপনার প্রয়োজনের উপর নির্ভর করে, সম্ভবত ব্যবহারকারীদের ব্রাউজারে ওয়েবসাইটটি খোলার আগ পর্যন্ত টোকনটি বৈধ থাকবে। এর জন্য একটি সহজ সমাধান হতে পারে - ব্যবহারকারীকে পর্যায়ক্রমে একটি iframe ব্যবহার করে ব্লগ করা: কুকি পিএইচপি থেকে ফেসবুক অটো পুনরায় লগইন করুন

আমার জন্য কাজ ...


0

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

এখানে চিত্র বর্ণনা লিখুন

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