تتيح موصِّلات المنتدى طرق المصادقة التالية:
- OAuth 2.0
- المسار/اسم المستخدم/كلمة المرور
- المسار/المفتاح
- اسم المستخدم/كلمة المرور
- اسم المستخدم/الرمز المميّز
- المفتاح
- لا ينطبق
بناءً على الطريقة التي تستخدمها، يجب توفير دوال إضافية. في الموصل.
يوضح الجدول التالي الدوال التي يجب تحديدها بناءً على نوع مصادقة الموصل.
OAUTH2 | PATH_USER_PASS PATH_KEY USER_PASS USER_TOKEN KEY |
لم يتم اختيار لون | |
---|---|---|---|
getAuthType() |
مطلوب | مطلوب | مطلوب |
resetAuth() |
مطلوب | مطلوب | |
isAuthValid() |
مطلوب | مطلوب | |
authCallback() |
مطلوب | ||
get3PAuthorizationUrls() |
مطلوب | ||
setCredentials() |
مطلوب |
getAuthType()
يجب أن تعرض هذه الدالة نوع المصادقة للموصل.
OAUTH2
PATH_USER_PASS
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_USER_PASS)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
PATH_KEY
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_KEY)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
USER_PASS
USER_TOKEN
المفتاح
لم يتم اختيار لون
resetAuth()
ستمحو هذه الدالة أي بيانات اعتماد مخزَّنة للمستخدم للجهة الخارجية. خدمة ما.
OAUTH2
PATH_USER_PASS
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.username');
userProperties.deleteProperty('dscc.password');
}
PATH_KEY
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.key');
}
USER_PASS
USER_TOKEN
المفتاح
isAuthValid()
ويتم استدعاء هذه الدالة لتحديد ما إذا كان الطرف الثالث تتم مصادقته
أن تكون الخدمة صالحة. إذا كانت المصادقة صالحة، فمن المتوقع أن يستدعي
لن يتعذّر تنفيذ getData()
وgetSchema()
بسبب
الوصول غير المصرح به. إذا لم تكن المصادقة صالحة، فقد يتلقى المستخدم
لبدء تدفق التفويض.
OAUTH2
PATH_USER_PASS
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var userName = userProperties.getProperty('dscc.username');
var password = userProperties.getProperty('dscc.password');
// This assumes you have a validateCredentials function that
// can validate if the path, userName and password are correct.
return validateCredentials(path, userName, password);
}
PATH_KEY
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var key = userProperties.getProperty('dscc.key');
// This assumes you have a validateCredentials function that
// can validate if the path and key are correct.
return validateCredentials(path, key);
}
USER_PASS
USER_TOKEN
المفتاح
OAUTH2
إضافة OAuth2 وإعداده لمكتبة النصوص البرمجية للتطبيقات
اتّبِع تعليمات إعداد OAuth2 لبرمجة التطبيقات. المكتبة لإضافتها إلى مشروع الموصِّل. بعد ذلك، اتبع الخطوة الأولى في دليل الاستخدام لإنشاء خدمة OAuth2 في الموصِّل مشروعك. يمكن أن يكون لخدمة OAuth2 أي اسم دالة صالح، ولكن يُرجى تستخدم الاسم نفسه عند الإشارة إلى خدمة OAuth2 في رمزك.
على سبيل المثال، خدمة OAuth2 المُسمّاة exampleService
:
authCallback()
ويتم استدعاء هذه الدالة لإكمال مسار OAuth 2.0. رد معاودة الاتصال من خدمة المصادقة التابعة لجهة خارجية كوسيطة ويجب باستخدام هذه الدالة.
مثال على التعامل مع معاودة الاتصال OAuth 2.0 باستخدام OAuth2 لبرمجة التطبيقات المكتبة:
get3PAuthorizationUrls()
يتم استدعاء هذه الدالة للحصول على عنوان URL المطلوب لبدء المصادقة.
لخدمة الجهة الخارجية. إذا عرضت isAuthValid
القيمة false
، سيتم عرض عنوان URL
سيظهر للمستخدم على شكل زر أو رابط حتى يتسنى له
تمنحهم إذن الوصول إلى خدمة الجهة الخارجية الاطّلاع على مرجع
get3PPermissionUrls().
مثال على عرض عنوان URL الخاص بالتفويض باستخدام OAuth2 في "برمجة تطبيقات Google" المكتبة:
USER_PASS
وUSER_TOKEN
وKEY
وPATH_USER_PASS
وPATH_KEY
ما يلي مطلوب فقط لـ USER_PASS
وUSER_TOKEN
وKEY
،
مسارات المصادقة PATH_USER_PASS
وPATH_KEY
setCredentials()
يتم استدعاء الدالة setCredentials
بعد أن يُدخل المستخدم إما بيانات الاعتماد الخاصة به.
معلومات حول صفحة إعداد موصل المجتمع. يجب عليك استخدام
خدمة المواقع لحفظ بيانات الاعتماد على كل مستخدم
باستخدام UserProperties
.
PATH_USER_PASS
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathUserPass;
var path = creds.path;
var username = creds.username;
var password = creds.password;
// Optional
// Check if the provided path, username and password are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, username, password);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.username', username);
userProperties.setProperty('dscc.password', password);
return {
errorCode: 'NONE'
};
}
PATH_KEY
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathKey;
var path = creds.path;
var key = creds.key;
// Optional
// Check if the provided path and key are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, key);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.key', key);
return {
errorCode: 'NONE'
};
}