it-swarm.asia

كيف يمكنني تطبيق "تسجيل الدخول باستخدام google" على موقعي؟

على موقعي ، أود السماح للمستخدمين بتسجيل الدخول باستخدام حساب google. أخطط لاستخدام openid ولكني أرغب في السماح بتسجيل الدخول باستخدام google لأنه يحتوي على المزيد من الفوائد. لقد لاحظت في الماضي بضعة مواقع لديها القدرة على تسجيل الدخول باستخدام حساب google (gmail) و IIRC على الرغم من أنها لا تدعم openID (لكن قد أكون مخطئًا).

كيف يمكنني تطبيق "تسجيل الدخول باستخدام google"؟

57
user34537

إذا كنت تخطط لاستخدام OpenID ، استخدم ذلك. جوجل هو بالفعل مزود OpenID 2.0.

يوجد موفر OpenID من Google على: https://www.google.com/accounts/o8/ud

(ملاحظة: ليس هناك فائدة من زيارة URI في متصفحك ، ولكنها تعمل من أجل OpenID.)

يتم تناول هذا بشكل أساسي في صفحة API الحسابات ، والتي تتناول أيضًا بروتوكول OAuth وأنظمة تسجيل الدخول المختلطة والمملوكة. بناءً على موقعك ، قد ترغب أيضًا في استخدام Friend Connect ، وهو حاوية OpenSocial تستخدم OpenID داخليًا للمصادقة.

أنا بالطبع منحازة تجاه Friend Connect ، لأنني DPE لهذا المشروع ، ولكن من الأفضل أن تقدم لك خدمة مباشرة باستخدام موفر OpenID إلا إذا كنت تقوم أيضًا بأشياء تتضمن رسمًا اجتماعيًا.

تحرير لعام 2012: تريد استخدام OAuth 2.0 لتسجيل الدخول . يجري GFC إيقاف التشغيل .

31
Bob Aman

قد تكون مهتمًا بـ RPX وهو حل الكل في واحد يتيح للأشخاص اختيار موفر الهوية الذي يرغبون في استخدامه لتسجيل الدخول الى موقعك ليس فقط Google و OpenID مدعومين ، ولكن العديد من الآخرين أيضًا.

تهتم RPX بجميع تفاصيل التواصل مع كل موفر هوية ، وتمنحك واجهة برمجة تطبيقات مشتركة للعمل معها.

16
Greg Hewgill

دمج Google Sign-In في تطبيق الويب الخاص بك

إنشاء مشروع Google Developers Console ومعرف العميل.

تحميل مكتبة منصة جوجل

يجب عليك تضمين Google Platform Library على صفحات الويب الخاصة بك التي تدمج تسجيل الدخول إلى Google.

<script src="https://apis.google.com/js/platform.js" async defer></script>

حدد معرف عميل التطبيق الخاص بك

حدد معرف العميل الذي قمت بإنشائه لتطبيقك في وحدة تحكم مطوّري برامج Google باستخدام عنصر التعريف google-signin-client_id.

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

ملاحظة: يمكنك أيضًا تحديد معرّف عميل التطبيق الخاص بك باستخدام المعلمة client_id لأسلوب gapi.auth2.init ().

إضافة زر تسجيل الدخول إلى Google

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

لإنشاء زر تسجيل الدخول إلى Google يستخدم الإعدادات الافتراضية ، أضف عنصر div مع الفئة g-signin2 إلى صفحة تسجيل الدخول الخاصة بك:

<div class="g-signin2" data-onsuccess="onSignIn"></div>

معلومات أخرى. يمكن العثور عليها هنا


الحل الممكن الآخر هو

استخدام OAuth 2.0 للوصول إلى واجهات برمجة تطبيقات Google

بروتوكولات المصادقة

نظرة عامة على OAuth 2.0

OpenID الاتصال

OAuth 2.0 لتطبيقات الويب من جانب الخادم

OAuth 2.0 لتطبيقات الويب JavaScript

OAuth 2.0 لتطبيقات الأجهزة المحمولة وسطح المكتب

4
KhogaEslam

أعتقد أن ما تبحث عنه هو Google Accounts API .

1
Pablo

أعتقد أن ما تريده هو Google Friend Connect

تحرير: لا لم تعد تفعل ذلك لأنه تم إهمالها.

1
DanSingerman

لكنني أرغب في السماح بتسجيل الدخول باستخدام Google

في هذه الحالة ، أضف الكود التالي

HTML

 <div id="mySignin" onclick="login()"><img src="google_image_here.png" alt="google" style="cursor:pointer;height: 60px;width: 309px;"/></div>

JS

        <script type="text/javascript">
        function login() 
        {
          var myParams = {
            'clientid' : 'YOUR_CLIENT_ID.apps.googleusercontent.com',
            'cookiepolicy' : 'single_Host_Origin',
            'callback' : 'loginCallback',
            'approvalprompt':'force',
            'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
          };
          gapi.auth.signIn(myParams);
        }

        function loginCallback(result)
        {
            if(result['status']['signed_in'])
            {
                var request = gapi.client.plus.people.get(
                {
                    'userId': 'me'
                });
                request.execute(function (resp)
                {
                    /* console.log(resp);
                    console.log(resp['id']); */
                    var email = '';
                    if(resp['emails'])
                    {
                        for(i = 0; i < resp['emails'].length; i++)
                        {
                            if(resp['emails'][i]['type'] == 'account')
                            {
                                email = resp['emails'][i]['value'];//here is required email id
                            }
                        }
                    }
                   var usersname = resp['displayName'];//required name
                });
            }
        }
        function onLoadCallback()
        {
            gapi.client.setApiKey('YOUR_API_KEY');
            gapi.client.load('plus', 'v1',function(){});
        }

            </script>

        <script type="text/javascript">
              (function() {
               var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
               po.src = 'https://apis.google.com/js/client.js?onload=onLoadCallback';
               var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
             })();
        </script>
1
A J

يمكنك النظر في openId ( http://openid.net/ ) وهو ما يستخدمه [SO ، ويدعمه Google .

0
jd.