কিভাবে ফেসবুক অ্যাক্সেস টোকেন যাচাই করবেন?


108

সার্ভারের কেবলমাত্র একটি জিনিস রয়েছে; কেবল অ্যাক্সেস টোকেনের বৈধতা পরীক্ষা করুন।

ক্লায়েন্টরা সার্ভারের ব্যবহারকারী আইডিতে এবং অ্যাক্সেস টোকেন দ্বারা প্রেরণ করে FB.getLoginStatus। যেমনটি আমি প্রত্যাশা করেছি, এমন কোনও ইউআরএল থাকবে যা টোকেনের বৈধতা অ্যাক্সেস পরীক্ষা করে http://xxx.facebook.com/access_token?=xxxxxxxxxxxxxxxxxxxxxxxxxxxx

এটি প্রত্যাবর্তন করে এটি একটি উপলভ্য হোক বা না থাকুক বা এর জন্য কোনও এপিআই (সার্ভার সাইড) রয়েছে?


2
শুধু গ্রাফ.ফেসবুক.com/me/permission কল করবেন না কেন?
আইজি

এছাড়াও দেখুন
স্ট্যাকওভারফ্লো.


3
এখানে একটি দুর্দান্ত ইউআই বিকাশকারী রয়েছে
face পৃষ্ঠার বই

উত্তর:


136

এর জন্য সরকারীভাবে সমর্থিত পদ্ধতিটি হ'ল:

GET graph.facebook.com/debug_token?
     input_token={token-to-inspect}
     &access_token={app-token-or-admin-token}

দেখুন চেক টোকেনটি ডক্স আরও তথ্যের জন্য।

একটি উদাহরণ প্রতিক্রিয়া:

{
    "data": {
        "app_id": 138483919580948, 
        "application": "Social Cafe", 
        "expires_at": 1352419328, 
        "is_valid": true, 
        "issued_at": 1347235328, 
        "metadata": {
            "sso": "iphone-safari"
        }, 
        "scopes": [
            "email", 
            "publish_actions"
        ], 
        "user_id": 1207059
    }
}

24
আমি মনে করি যে এটি ফেসবুক ভাঙ্গা পরিবর্তন প্রবর্তনের সম্ভাবনা বেশি বলে বিভ্রান্তিকর বলে মনে করি। তারা যে কোনও জায়গায় এবং তাদের সরকারী দস্তাবেজগুলি পরিষ্কার করে দিয়েছে যে অ্যাক্সেস টোকেনটি বৈধ করার উপায় এটি
এড সাইকস

1
@ আরএনপ, ভাল, এপিআই এর শেষ পয়েন্টটির নাম "ডিবাগ_ টোকেন", এবং এটি টোকনস এবং ডিবাগিং সম্পর্কিত তথ্য প্রাপ্তির লেবেলযুক্ত ফেসবুক এপিআই ডকুমেন্টেশনের একটি অংশে বর্ণনা করা হয়েছে । ডকুমেন্টেশনের এই বিভাগটি এইচটিএমএল অ্যাঙ্কর # ডেবুগ দ্বারা উল্লেখ করা হয়েছে, এবং উল্লেখ করেছে যে API তাদের ডিবাগ সরঞ্জামটির পিছনে রয়েছে। আমার কাছে বেশ পরিষ্কার বলে মনে হচ্ছে, তবে আপনি প্রযুক্তিগতভাবে ঠিক বলেছেন, কোথাও পরিষ্কার এবং সরাসরি বলা হয়নি যে ফাংশনটি উত্পাদন ব্যবহারের উদ্দেশ্যে নয় ... :-)
জোনাথন গিলবার্ট

5
এখানে মূল সমস্যাটি হ'ল আমাকে? অ্যাক্সেস_ টোকেন পদ্ধতিটি ব্যবহার ক্লায়েন্টের পক্ষ থেকে যদি ডেটা আসছে; যেহেতু কোনও সাইট টোকেনের জন্য মাছ ধরতে পারে তারপরে আপনার এপিআই অ্যাক্সেস করে আপনার সাইটে প্রমাণীকরণ করতে সেগুলি ব্যবহার করুন।
srcspider

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

3
দস্তাবেজগুলিতে অতীতে ডিবাগিংয়ের জন্য এটি ব্যবহার করে রেফারেন্সিং থাকতে পারে। তবে বর্তমানে এটি প্রস্তাবিত এটি হ'ল ব্যবহারের ক্ষেত্রে।
AndHeiberg

78

আপনি কেবল https: // ગ્રા. facebook.com/me?access_token=xxxxxxxxxxxxxxxxxxxx অনুরোধ করতে পারেন যদি কোনও ত্রুটি পান তবে টোকেনটি অবৈধ । আপনি যদি কোনও আইডির সম্পত্তি সহ কোনও জেএসওএন অবজেক্ট পান তবে তা বৈধ।

দুর্ভাগ্যক্রমে এটি কেবলমাত্র আপনাকে বলবে যে আপনার টোকেনটি বৈধ কিনা, এটি যদি আপনার অ্যাপ থেকে আসে না।


9
দুঃখিত, আমার প্রশ্ন পরিষ্কার ছিল না। সমস্যাটি কীভাবে কেবল ইউড এবং অ্যাক্সেস টোকেন দিয়ে ব্যবহারকারীকে যাচাই করা যায়। graph.facebook.com/100000726976284?access_token=xxxxxx উদাহরণস্বরূপ, সেখানে 100000726976284 যদি ব্যবহারকারীর অ্যাক্সেস চেক করতে টোকেন হয় xxxxxx কোনো সহজ উপায়। আমি অনুমান করি যে দায়েরকৃত 'যাচাইকৃত' কী। আমি যখন সঠিক xxxxxx রেখেছি তখনই আমি প্রতিক্রিয়াতে যাচাইকৃত = সত্য দেখতে পেলাম।
সুতরাং জা কিউং

14
উপরে উল্লিখিত গ্রাফ.ফেসবুক.com/me?access_token=xxxxxxxxxxxxxxxxxxx অনুরোধ করুন এবং তারপরে আপনার ইউডিটি ইউডিটি অনুরোধটি থেকে ফিরে গেছে কিনা তা পরীক্ষা করুন।
অ্যালেক্সকিউ

51
এটি আপনার অ্যাপ্লিকেশনের জন্য অ্যাক্সেস_ টোকেন কিনা তা পরীক্ষা করবে না।
এড সাইকস

এছাড়াও expires_atতথ্য সরবরাহ করা হচ্ছে না ।
ভিনেশ 16

4
downvoting, এই ভাবে @EdSykes সাথে একমত আপনি না পরীক্ষা করতে না পরেন তাহলে অ্যাক্সেস টোকেন আপনার অ্যাপ জন্যে developers.facebook.com/docs/facebook-login/security
nikis

35

কেবল আপনাকে জানাতে চেয়েছিলাম যে আজ অবধি আমি প্রথমে একটি অ্যাপ্লিকেশন অ্যাক্সেস টোকেন (ফেসবুকের কাছে জিইটি অনুরোধের মাধ্যমে) প্রাপ্ত করেছিলাম এবং তারপরে প্রাপ্ত টোকেনটি এই হিসাবে ব্যবহার করেছি app-token-or-admin-token:

GET graph.facebook.com/debug_token?
    input_token={token-to-inspect}
    &access_token={app-token-or-admin-token}

তবে, আমি এটি করার আরও ভাল উপায়টি বুঝতে পেরেছি (আরও একটি কম জিইটি অনুরোধের প্রয়োজনের অতিরিক্ত সুবিধা সহ):

GET graph.facebook.com/debug_token?
    input_token={token-to-inspect}
    &access_token={app_id}|{app_secret}

এখানে অ্যাক্সেস টোকেন্সের জন্য ফেসবুকের ডকুমেন্টেশনে বর্ণিত হিসাবে ।


6
ধন্যবাদ. অন্যদের জন্য নোট: আক্ষরিক "|" উত্তরের সাথে
মাইকে এস

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

1
@Simeon stackoverflow.com/questions/499591/are-https-urls-encrypted এটা বেশ নিরাপদ।
শিগিং

ধন্যবাদ ধন্যবাদ, আমি দেখতে পাচ্ছি যে আমি ভুল ধারণাটির মধ্যে ছিলাম :) মনে হচ্ছে কেবল ইউআরএল এর হোস্ট অংশটি এনক্রিপ্ট করা হয়নি।
শিমোন

1
'|' যুক্ত করা হচ্ছে অ্যাপ গোপনীয়তা সহ আমাকে শেষ পর্যন্ত যেতে পেয়েছে। অন্যথায় এই API কাজ করে না।
উদয়



1

এক্সচেঞ্জ Access Tokenজন্যMobile Number and Country Code(সার্ভার সাইড বা ক্লায়েন্ট সাইড) এর

আপনি পেতে পারেন mobile numberআপনার সঙ্গে access_tokenএই সঙ্গে API https://graph.accountkit.com/v1.1/me/?access_token=xxxxxxxxxxxx । হতে পারে, একবার আপনার mobile numberএবং এর পরে id, আপনি এটির সাথে আপনার ব্যবহারকারীকে যাচাই করতে কাজ করতে পারেনserver & database

xxxxxxxxxx উপরে Access Token

প্রতিক্রিয়া উদাহরণ:

{
   "id": "61940819992708",
   "phone": {
      "number": "+91XX82923912",
      "country_prefix": "91",
      "national_number": "XX82923912"
   }
}


এক্সচেঞ্জ Auth Codeজন্যAccess Token (সার্ভার সাইড)

আপনি একটি থাকে তাহলে Auth Codeপরিবর্তে, আপনাকে প্রথমে পেতে পারেন Access Tokenএই সঙ্গে API- https://graph.accountkit.com/v1.1/access_token?grant_type=authorization_code&code=xxxxxxxxxx&access_token=AA|yyyyyyyyyy|zzzzzzzzzz

xxxxxxxxxx, yyyyyyyyyyএবং zzzzzzzzzzউপরে আছে Auth Code, App IDএবংApp Secret যথাক্রমে।

উদাহরণ প্রতিক্রিয়া

{
   "id": "619XX819992708",
   "access_token": "EMAWdcsi711meGS2qQpNk4XBTwUBIDtqYAKoZBbBZAEZCZAXyWVbqvKUyKgDZBniZBFwKVyoVGHXnquCcikBqc9ROF2qAxLRrqBYAvXknwND3dhHU0iLZCRwBNHNlyQZD",
   "token_refresh_interval_sec": XX92000
}

দ্রষ্টব্য - server-sideযেহেতু APIএটির প্রয়োজন APP Secretহয় না তার জন্য এটি পছন্দ sharedকরা হয়security reasons

শুভকামনা

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