谷歌第三方

网页使用google账号实现第三方登录


详细demo下载

本demo示例利用JavaScript SDK实现了Facebook、google、LinkedIn第三方登录,可以获取用户的基本信息,并且同时包括官方登录按钮和自定义登录按钮代码示例。


1、创建Google API控制台项目和客户端ID

首先前往Google API 控制台选择或者创建一个项目

https://console.developers.google.com/project/_/apiui/apis/library
选择创建凭据 -> OAuth 客户端 ID -> 网页应用,之后输入 JavaScript 来源、重定向 URI(可以添加开发地址:http://localhost:8085),拿到的客户端ID用于后续操作。

2、自定义登录和注销按钮

    <button id="customBtn" type="button">Google登录</button>
    <div id="name"></div>
    <button type="button" οnclick="signOut();">Sign out</button>
      
    <script src="https://apis.google.com/js/api:client.js"></script>
    <script>
        var googleUser = {};
        var startApp = function() {
            gapi.load('auth2', function(){
              // Retrieve the singleton for the GoogleAuth library and set up the client.
              auth2 = gapi.auth2.init({
                client_id: 'xxxx', //客户端ID
                cookiepolicy: 'single_host_origin',
                scope: 'profile' //可以请求除了默认的'profile' and 'email'之外的数据
              });
              attachSignin(document.getElementById('customBtn'));
            });
        };
     
        function attachSignin(element) {
            auth2.attachClickHandler(element, {},
            function(googleUser) {
              document.getElementById('name').innerText = "Signed in: " + googleUser.getBasicProfile().getName();
            var profile = auth2.currentUser.get().getBasicProfile();
            console.log('ID: ' + profile.getId());
            console.log('Full Name: ' + profile.getName());
            console.log('Given Name: ' + profile.getGivenName());
            console.log('Family Name: ' + profile.getFamilyName());
            console.log('Image URL: ' + profile.getImageUrl());
            console.log('Email: ' + profile.getEmail());
            }, function(error) {
              console.log(JSON.stringify(error, undefined, 2));
            });
        }
        startApp();
     
        //注销
        function signOut() {
            var auth2 = gapi.auth2.getAuthInstance();
            auth2.signOut().then(function () {
                alert('用户注销成功');
            });
        }
    </script>

注意:Google帐户的电子邮件地址可能会更改,因此请勿使用它来标识用户。相反,请使用帐户的ID,您可以在客户端上获取ID, 在ID标记getBasicProfile().getId()的sub声明中使用该ID。
---------------------
作者:zh_rey
来源:CSDN
原文:https://blog.csdn.net/zh_rey/article/details/79013290
版权声明:本文为博主原创文章,转载请附上博文链接!

谷歌第三方登录是一种利用谷歌账号登录第三方网站或应用程序的方式。在 PHP 中,我们可以使用谷歌提供的 OAuth 2.0 协议来实现这一功能。 首先,我们需要在谷歌开发者控制台上创建一个项目,并获取到谷歌提供的客户端ID和客户端密钥。接下来,我们需要安装并引入谷歌 PHP 客户端库。 在网站或应用程序中,我们可以提供一个链接或按钮,让用户点击以登录谷歌账号。当用户点击该链接时,我们将向谷歌发送一个授权请求,并重定向用户到谷歌登录页面。用户需要登录并授权我们的应用程序的访问权限。 一旦用户授权成功,谷歌将会将一个授权码发送回我们的重定向URL。我们可以通过在该URL中检索授权码来获取用户的访问令牌。然后,我们可以使用访问令牌来获取用户的谷歌账号信息。 在 PHP 中,我们可以使用谷歌客户端库提供的方法来完成上述步骤。首先,我们需要创建一个谷歌客户端对象,并设置我们在开发者控制台中获取到的客户端ID和客户端密钥。 然后,我们可以生成一个谷歌授权链接,并将用户重定向到该链接。当用户成功登录并授权后,我们可以使用谷歌客户端的 `fetchAccessTokenWithAuthCode` 方法来获取用户的访问令牌。 一旦我们获取到访问令牌,我们可以使用谷歌客户端的 `get` 方法来获取用户的谷歌账号信息,例如用户的姓名、电子邮件等。 最后,我们可以根据用户的谷歌账号信息进行相应的处理,例如创建新用户账号,或将其与现有用户账号进行关联。 通过这样的方式,我们就可以在 PHP 中实现谷歌第三方登录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值