Google-api-nodejs-client: لا تنتهي صلاحية رمز الوصول

تم إنشاؤها على ٢٢ فبراير ٢٠١٦  ·  4تعليقات  ·  مصدر: googleapis/google-api-nodejs-client

أنا أستخدم API (v1) بالطريقة التالية:

var oauth2Client = new OAuth2(getGoogleCredentials().clientId, getGoogleCredentials().secret);
oauth2Client = new OAuth2(this.clientId, this.clientSecret);
this.oauth2Client.setCredentials({
  access_token: this.access_token,
  refresh_token: this.refresh_token,
  expiry_date: true
});

لم تحصل على استجابة 401 أو 403.
أرى حاليًا السلوك المتمثل في أنه قد يتم تحديث رمز الوصول تلقائيًا.
1) هل يقوم Gmail Api تلقائيًا بتحديث رمز الوصول؟
2) كيف يمكنني الحصول على استجابة 401 و 403 وكيف تعمل واجهة gmail api على تحديثها؟

التعليق الأكثر فائدة

إذا اكتشف عميل OAuth2 أن رمز الوصول قد انتهت صلاحيته ، فيجب عليه تحديث الرمز المميز تلقائيًا. لن ترى 401 أو 403 لرمز مميز منتهي الصلاحية.

وجود oauth2Client ،

هل يعرف أي شخص طريقة التحقق مما إذا تم تحديث الرمز المميز والحصول على رمز جديد؟ لم أجد هذا في المستندات. هذا يمثل سببًا شائعًا - أريد أن أبقي دائمًا رمزًا محدثًا في قاعدة البيانات الخاصة بي.

شكرا!

محدث

الطريقة الوحيدة التي وجدتها الآن هي الطريقة التالية:

let storedToken = { access_token: "...", expiry_date: 0000, ... };
oauth2Client.getAccessToken((err, access_token) => {
  if (storedToken.access_token !== access_token) {
    Object.assign(storedToken, oauth2Client.credentials || {});
  }
  // next steps go here
})

ولا توجد طريقة أخرى للوصول إلى oauth2Client.credentials غير مباشرة. أقترح إنشاء وتوثيق جامع لهذا ، ما رأيك؟

ال 4 كومينتر

1) هل يقوم Gmail Api تلقائيًا بتحديث رمز الوصول؟

نعم ، يجب أن يكون هذا هو الحال. من README.md :

عميل OAuth2 الذي يسمح لك باسترداد رمز وصول وتحديث الرمز المميز وإعادة محاولة الطلب بسلاسة إذا انتهت صلاحية الرمز المميز.

2) كيف يمكنني الحصول على استجابة 401 و 403 وكيف تعمل واجهة gmail api على تحديثها؟

إذا اكتشف عميل OAuth2 أن رمز الوصول قد انتهت صلاحيته ، فيجب عليه تحديث الرمز المميز تلقائيًا. لن ترى 401 أو 403 لرمز مميز منتهي الصلاحية.

ryanseys يمكن التأكيد.

الإغلاق حيث لا يبدو أن هذا يمثل مشكلة. إذا كنت مقتنعًا بأن هذا خطأ حقًا ، فلا تتردد في إعادة فتح المشكلة وإضافة المزيد من المعلومات مثل:

  • سلوك متوقع
  • السلوك الفعلي
  • عينات التعليمات البرمجية
  • أرقام الإصدارات
  • مراجع مستندات أو روابط أخرى

أو ضع في اعتبارك فتح طلب سحب.

بخلاف ذلك ، يتم التعامل مع أسئلة الدعم في Stack Overflow .Ask a question on Stackoverflow

إذا اكتشف عميل OAuth2 أن رمز الوصول قد انتهت صلاحيته ، فيجب عليه تحديث الرمز المميز تلقائيًا. لن ترى 401 أو 403 لرمز مميز منتهي الصلاحية.

وجود oauth2Client ،

هل يعرف أي شخص طريقة التحقق مما إذا تم تحديث الرمز المميز والحصول على رمز جديد؟ لم أجد هذا في المستندات. هذا يمثل سببًا شائعًا - أريد أن أبقي دائمًا رمزًا محدثًا في قاعدة البيانات الخاصة بي.

شكرا!

محدث

الطريقة الوحيدة التي وجدتها الآن هي الطريقة التالية:

let storedToken = { access_token: "...", expiry_date: 0000, ... };
oauth2Client.getAccessToken((err, access_token) => {
  if (storedToken.access_token !== access_token) {
    Object.assign(storedToken, oauth2Client.credentials || {});
  }
  // next steps go here
})

ولا توجد طريقة أخرى للوصول إلى oauth2Client.credentials غير مباشرة. أقترح إنشاء وتوثيق جامع لهذا ، ما رأيك؟

أنا أيضا أواجه نفس المشكلة. كنت في الأصل على وشك الاتصال بـ oauth2Client.refreshAccessToken() يدويًا وحفظ الرمز المميز المحدث ، ولكن يبدو أن هذه الطريقة مهملة.

هل الطريقة التي نشرتها ZitRos هي الحل الأنيق أم هل اكتشف شخص ما طريقة أفضل؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

streamnsight picture streamnsight  ·  4تعليقات

lowagner picture lowagner  ·  3تعليقات

ACMerriman picture ACMerriman  ·  3تعليقات

oliverjessner picture oliverjessner  ·  3تعليقات

hainguyents13 picture hainguyents13  ·  3تعليقات