• 0

مشكلة أثناء الاتصال بخادم mongodb بسبب كلمة المرور

أحاول الاتصال بخادم خارجي يحوي قاعدة البيانات mongodb، وبما أن الاتصال سيكون على الشكل التالي:

mongodb://username:password@host:port/database

لقد قمت بإضافة اسم المستخدم، ولكن المشكلة بأن كلمة المرور تحوي الإشارة @ أيضاً. وعندما قمت بإضافة @ ضمن كلمة المرور ظهر لي عدة أخطاء بسبب ذلك.

كيف يمكنني وضع كلمة المرور التي تحوي محارف وإشارات ومنها @ ضمن الاتصال؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك استبدال الإشارات في حال وجودها ضمن اسم المستخدم أو كلمة المرور بالترميز الذي يدل عليها.

على سبيل المثال، يمكنك كتابة الرمز (%40) بدلاً من @ ضمن كلمة المرور فيصبح الاتصال على الشكل التالي:

//بفرض كلمة المرور هي my@password

mongoClient.connect("mongodb://username:my%40pssword@host:port/dbname?authSource=admin", { 
        useNewUrlParser: true
    }, function(err, db) {

    }
);

وفي حال كنت تستخدم node.js يجب عليك أيضاً تمرير التالي ضمن تابع الاتصال:

{uri_decode_auth: true}

أما الاتصال عن طريق mongoose فمكن أن يتم بالشكل التالي:

mongoose.connect('mongodb://localhost/mydatabase',
                 {user: 'usr', pass: 'any@password@'},
                 callback);

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكن استعمال الدالة : encodeURIComponent لتخطي مشكلة الترميز

const dbUrl = `mongodb://adminUsername:${encodeURIComponent('adminPassword')}@localhost:27017/mydb`;

وفي حال استخدامها لنفس الدالة مع mongose سنضطر لتمرير الخيار 

useNewUrlParser: true,

 

بهذه الدالة سيتم تخطي كافة المحارف الخاصة

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

إذا كان لديك رمز @ أو غيرها من الرموز فيجب عليك ترميزها أي إستبدالها بالأرقام الخاص بها ويمكنك تحويل كلمة السر من هنا

ومن ثم إستبدال الرموز ووضع الأرقام الخاصة بها 

اما إذا كنت تستخدم MongoClient

MongoClient = require('mongodb').MongoClient;
let options = {
    useNewUrlParser: true,
    auth: {
        user: 'usr',
        password: 'p@sswrod'
    }
};
MongoClient.connect(url, options, callback);

وايضاً يمكنك إستخدام حزمة mongodb-uri كالآتي

const mongoose = require('mongoose')
const mongodbUri = require('mongodb-uri')
let mongooseUri = mongodbUri.formatMongoose(config.mongo.uri)
mongoose.connect(mongooseUri, config.mongo.options)

 

وهذه هي الرموز الذي يجب عليك ترميزها

: / ? # [ ] @

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن