مسح رمز الاستجابة السريعة على الكمبيوتر للتسجيل وتسجيل الدخول
1. مقدمة
اسمحوا لي أولاً أن أذكر أن تركيز هذه المقالة على أفكار التنفيذ ، وأن تصميم الكود وقواعد البيانات مخصصة بشكل أساسي لإظهار الأفكار. إذا كان لديك متطلبات صارمة على كفاءة الكود ، فلا تقم بنسخها.
أعتقد أن الأشخاص الذين قاموا بتطوير WeChat قاموا بالعديد من التراخيص ، ولكن بشكل عام ، نحن أكثر تفويضًا من مواقع الويب المحمولة ، أو بالأحرى ، فهي ترخيص في ظل محطة WeChat. إحدى المشكلات التي واجهتها اليوم هي أن المشروع يدعم محطات WeChat و PC ويفتح التسجيل. مطلوب لتسجيل الدخول على الطرف الآخر سواء قمت بالتسجيل على الكمبيوتر أو على جانب WeChat. بمعنى آخر ، سواء كان جهاز كمبيوتر أو WeChat ، يجب أن تفعل "أنت أنت" (تتعلق بطريقة ما).
2. ابحث عن حل
بالتفكير بالطريقة التقليدية ، يمكن تسجيل جانب WeChat من خلال التفويض ، ولكن على جانب الكمبيوتر الشخصي ، فإن الطريقة التقليدية ليست أكثر من ملء رقم الهاتف المحمول ، أو البريد الإلكتروني ، وما إلى ذلك. إذا قمت بالتسجيل بهذه الطريقة ، فإن المشكلة التالية ستنشأ
1. أسمح أولاً للتسجيل على جانب WeChat ، لذلك إذا كنت أرغب في تسجيل الدخول إلى جانب الكمبيوتر الشخصي ، فلا يزال يتعين علي التسجيل.
يمكن أن يكون هذا الحل: بعد تسجيل تفويض WeChat ، يتم "إجبار" على مطالبة المستخدمين بملء المعلومات الأساسية ، مثل رقم الهاتف المحمول والبريد الإلكتروني. وبهذه الطريقة ، يمكننا إنشاء كلمة مرور الحساب للمستخدم لتسجيل الدخول إلى الكمبيوتر بطريقة ما. على سبيل المثال ، استخدم لقب المستخدم كحساب ، ورقم الهاتف المحمول باعتباره كلمة المرور ، إلخ.
العيوب: تجربة المستخدم ليست جيدة ، وهناك أيضًا مخاطر السلامة. بعد كل شيء ، يتعرض لقب WeChat الخاص بك أو البريد الإلكتروني أو رقم الهاتف المحمول.
2. إذا قمت بالتسجيل على الكمبيوتر أولاً ، كيف يمكنني الاتصال بمحطة الهاتف المحمول عندما أسمح لـ WeChat؟ بالطبع ، ستكون هناك دائمًا حلول لأي مشكلة. الفكرة هي كما يلي:
الحل 1: بعد تسجيل المستخدم على الكمبيوتر ، يجب على المستخدم "القوة" ملء لقب WeChat. يستخدم هذا كشرط ذي صلة بترخيص WeChat. لكن لسوء الحظ ، يمكن تغيير اسم WeChat ، لكنه ليس الوحيد ، كيف يمكن استخدامه لجمع الجمعيات؟ قتلت الخطة في وضع يائس.
الخطة 2: بعد التفويض على جانب WeChat والتسجيل على جانب الكمبيوتر الشخصي ، يتعين على المستخدمين ملء أرقام هواتفهم المحمولة كرابط. هذا يؤدي إلى مشكلة ، ومن الضروري ضمان صحة الهاتف المحمول للمستخدم ، وليس هناك مشكلة. يمكن تحقيق ذلك من خلال رمز التحقق من الهاتف المحمول (وينطبق الشيء نفسه على البريد الإلكتروني). ولكن قد تفترض أيضًا أن الموقف التالي موجود. إذا كان لديّ رقمين للهواتف المحمولة ، املأ واحدة عند التسجيل على جهاز الكمبيوتر والآخر عند التسجيل على WeChat. هل هو مرتبط؟ الجواب مؤسف. علاوة على ذلك ، بعد أن قمت بالتسجيل على جهاز الكمبيوتر ، لم أملأه (السبب الذي جعلني أجبرت على عروض الأسعار المزدوجة) ، ثم استخدمت ترخيص WeChat لتسجيل الدخول. حسنًا ، سيكون هناك قطعتان من البيانات في انتظارك لإيجاد طريقة للربط ، وسيقوم مطور نموذجي بحفر حفرة. تعمل هذه الطريقة إلى حد ما ، ولكن من غير المقبول للمطورين أن يكونوا صارمين.
3. حل للعودة إلى الأصل
التحليل: نظرًا لوجود كل مشاكل في الحلول المذكورة أعلاه ، دعنا نضعها جانباً أولاً. أعد بعض الأفكار إلى جذر المشكلة. تتطلب المشكلة المرتبطة معرفًا فريدًا. الهوية الفريدة مثل رقم الهوية لدينا. عندما نتقدم بطلب للحصول على بطاقة ائتمان ، تكون بطاقة الهوية ضرورية. إذا قمت بشراء بطاقة أرقام ضمن نظام الأسماء الحقيقي ، فإن بطاقة الهوية ضرورية. على افتراض أننا مسؤولو النظام ، ثم يمكنني معرفة رقم هاتفك المحمول ورقم البطاقة المصرفية من خلال رقم الهوية الخاص بك.
مع الفكرة أعلاه ، كل ما نحتاج إلى فعله هو إيجاد معرف فريد لترتبط به. هناك دور مهم في WeChat. لديها هذه الوظيفة المشتركة مع رقم المعرف الذي ذكرناه أعلاه ، والتحديد الفريد لحساب رسمي معين من قبل حساب WeChat.
إذن من WeChat متاح لـ OpenID. أي شخص قام بتنمية WeChat لا ينبغي أن يواجه مشكلة. والسؤال هو كيفية تحقيق محطة الكمبيوتر الشخصي للانفتاح عند التسجيل أو تسجيل الدخول. فكرة تنفيذ المؤلف هي كما يلي. سجل على الكمبيوتر ، أو عرض رمز QR عند تسجيل الدخول ، قم بتوجيه المستخدم لمسح الرمز باستخدام WeChat ، بحيث يقفز إلى صفحة التفويض. هذه الخطوة لديها التفاصيل الأكثر أهمية. يرجى إحضار رمز تفويض فريد (AuthCode) إلى رمز الاستجابة السريعة. فقط تخيل إذا كان المستخدم يسمح لنا بكتابة OpenId و AuthCode إلى قاعدة البيانات. ثم يمكننا الحصول على OpenID المرتبط مع AuthCode من خلال واجهة برمجة تطبيقات على جانب الكمبيوتر. إذا قمنا بذلك ، فيمكننا معرفة من الذي يقوم حاليًا بمسح الرمز لتسجيل أو تسجيل الدخول إلى الكمبيوتر (سجل إذا لم يتم تسجيله ، ومن المسجل سيقوم بتسجيل الدخول مباشرة). هل تشعر فجأة بهذه السهولة؟ إذا كنت تعتقد أن النص أكثر تجريدًا ، فيرجى الاطلاع على الصورة التالية
PC WeChat Scan Code عملية تسجيل الدخول
الكود الأساسي
بعد توضيح الأفكار والعمليات ، سنقوم مباشرة بتحميل الكود. أفكار التطوير شائعة ، لذا يرجى إظهار قواتك السحرية عند تطوير اللغة.
ملاحظة: يستغرق الرمز التالي لغة C# كمثال ويستخدم MVC + EF (ملاحظة: UUID مكافئة لـ AuthCode أعلاه)
مسح الرمز لتسجيل الدخول إلى صفحة الخلفية
actionResult PublicResult login () {// إذا قمت بتسجيل الدخول ، فانتقل مباشرة إلى الصفحة الرئيسية إذا كان (user.identity.isauthenticated) إعادة توجيه ("index" ، "home") ؛ سلسلة url = request.url.host ؛ String uuid = guid.newguid (). toString () ؛ viewbag.url = "http: //" + url + "/home/loginfor؟
يتم إنشاء رمز الاستجابة السريعة باستخدام المكون الإضافي jQuery.qrcode.js. إذا كنت تريد معرفة المزيد ، يرجى الانتقال إلى Github. شيء واحد يجب ملاحظته هنا هو أن هذا البرنامج المساعد يمكنه تحديد طريقة توليد رمز الاستجابة السريعة أو اللوحة أو الجدول. يرجى تحديد استخدام توليد الجدول للأصدقاء الذين يدعمون أي.
الرمز كما يلي:
jQuery ('#qrcode'). qrcode ({render: "table" ، text: "http://baidu.com"}) ؛عد إلى الموضوع ، الرمز الرئيسي لصفحة تسجيل الدخول هو كما يلي
<!-حاوية لإنشاء رمز QR div-> <div id = "qrcode-container"> </div> <script src = "~/plugins/jQuery/jQuery -1.9.1.min.js jQuery (function () {// إنشاء رمز QR jQuery ('#qrcode-container'). } الوظيفة (البيانات) {if ("النجاح" {// user upitarization => jump if ("success"
استطلاع لتحديد ما إذا كان المستخدم يسمح برمز API
السلسلة العامة userLogin (String uuid) {// تحقق مما إذا كانت المعلمة قانونية إذا كانت (string.isnullorempty (uuid)) إرجاع "param_error" ؛ WX_USERRECORD user = db.wx_userrecord.where (u => U.UUID == UUID) .Firstordefault () ؛ إذا كان (user == null) إرجاع "not_authcode" ؛ // كتابة ملفات تعريف الارتباط formsauthentication.setauthcookie (user.openid ، false) ؛ // clear uuid user.uuid = null ؛ db.savechanges () ؛ إرجاع "النجاح" ؛}اتخاذ تفويض WeChat
actionresult publicresult loginfor (سلسلة uuid) {#region الحصول على المعلومات الأساسية - snsapi_userinfo / * * إنشاء فئة wechat العامة - الكود هنا أكثر تعقيدًا ولم يتم نشره هنا * سأقوم بفرز العرض التجريبي بأكمله على github * / wechatusertxt wxcontext = new wechatuscontxt // استخدم فئة WeChat العامة للحصول على معلومات المستخدم الأساسية wxcontext.getuserInfo () ؛ if (! string.isnullorempty (wxContext.openId)) {uuid = request ["state"] ؛ // ugns ما إذا كانت قاعدة البيانات موجودة wx_userrecord user = db.wx_userrecord.where (u => U.OpenId == WxContext.openid) .firstordefault () ؛ if (null == user) {user = new wx_userrecord () ؛ user.openId = wxContext.openId ؛ user.city = wxcontext.city ؛ user.country = wxcontext.country ؛ user.createTime = dateTime.now ؛ user.headimgurl = wxcontext.headimgurl ؛ user.nickName = wxContext.nickName ؛ user.province = wxcontext.province ؛ user.sex = wxcontext.sex ؛ user.unionid = wxcontext.unionid ؛ user.uuid = uuid ؛ db.wx_userrecord.add (user) ؛ } user.uuid = uuid ؛ db.savechanges () ؛ } #endregion return view () ؛}
أخيرًا ، يتم إرفاق تصميم جدول قاعدة البيانات
لا يوجد شيء مميز ، نضيف uuid مخصصًا لكل معلمة تم إرجاعها بواسطة WeChat.
للحصول على تفاصيل وصف معلمة WeChat ، يرجى الرجوع إلى وثائق مطور WeChat
تأثير الجري
1. مسح رمز الاستجابة السريعة لتسجيل الدخول إلى الصفحة
2. طلب ترخيص المستخدم
3. المستخدم يؤكد التفويض
4. تم الانتهاء من تسجيل الدخول إلى الكمبيوتر الشخصي
هناك أوجه قصور حتمية في المقال ، أرجوك سامحني. إذا وجدت أي أخطاء ، فيرجى ترك رسالة لإشرافها. أنا ممتن جدا! مسح رمز الاستجابة السريعة على WeChat للتسجيل وتسجيل الدخول إلى العرض التوضيحي. بعد فرز المؤلف ، ضعه على جيثب. آمل أن أساعد المزيد من الأصدقاء. يرجى الانتباه إلى تحديث هذه المقالة.
ما ورد أعلاه أمثلة على مسح رمز الاستجابة السريعة على WeChat على الكمبيوتر. يمكن للأصدقاء المحتاجين الرجوع إليه. شكرا لك على دعمك لهذا الموقع!