مزامنة تطبيق SSO node.js

Here is example with NodeJS if anyone needs it:

'use strict';

const axios = require('axios');
const crypto = require('crypto');
const qs = require('querystring');
const config = require('./config');

function getHash(data, secret) {
  return crypto.createHmac('sha256', secret)
    .update(data)
    .digest('hex');
}

function syncSso() {
  const endpoint = `${config.discourse.url}/admin/users/sync_sso`;
  const params = {
    external_id: 1,
    email: 'bob@example.com',
    username: 'bob',
    add_groups: 'eurorack',
    require_activation: true
  };
  const headers = {
    'Api-Key': config.discourse.apiKey,
    'Api-Username':  config.discourse.apiUsername,
    'Content-Type': 'multipart/form-data'
  };
  const sso = Buffer.from(qs.stringify(params)).toString('base64');
  const sig = getHash(sso, config.discourse.ssoSecret);
  return axios.post(endpoint, qs.stringify({ sso, sig }), { headers })
    .then(({ data }) => data)
    .catch(err => err);
}
3 إعجابات

مرحباً، لقد جربت المقتطف البرمجي أعلاه في تطبيق Node الخاص بي وكان يعمل بشكل جيد عند إعادة التوجيه إلى http://localhost:4200/?sso=bm9uY2U9OTRiNzM1ODU1NDUxOTBmNTE3YWE1NzM0YjA5MDFiODQmcmV0dXJuX3Nzb191cmw9aHR0cCUzQSUyRiUyRmxvY2FsaG9zdCUzQTMwMDAlMkZzZXNzaW9uJTJGc3NvX2xvZ2lu&sig=9fdb6d9f8bd91005d3612c476c91c2acbb650b5532feb9eb131405e2bbe0c0c2

إنه يعطيني مهلة في بعض الأحيان وفي بعض الأحيان أحصل على “لقد انتهيت من كل شيء!”.

بعد بضع محاولات، لم أعد أستطيع الوصول إلى لوحة التحكم الخاصة بي على localhost:4200، حيث تستمر في إعادة التوجيه إلى عنوان URL أعلاه.

لقد قمت بالفعل بمسح ذاكرة التخزين المؤقت وملفات تعريف الارتباط للمتصفح الخاص بي.

من فضلك ساعدني.

في كل مرة أحصل على هذا فقط. حتى أنني لا أستطيع الوصول إلى لوحة التحكم الخاصة بي عند النقر على زر تسجيل الدخول، يتم إعادة توجيهه إلى عنوان URL لإعادة توجيه SSO.