如何在CakePHP REST API上集成Google登录

如何在CakePHP REST API上集成Google登录,rest,cakephp,cakephp-3.0,jwt,google-login,Rest,Cakephp,Cakephp 3.0,Jwt,Google Login,我正在构建一个与CakePHP3WebAPI接口的Android应用程序。因为RESTful API不能依赖cookie,所以我知道我需要JSON web令牌JWT来实现这一点,我更喜欢使用google登录。我已经让Android端从Google的API请求令牌,但现在我不知道如何将其合并到我的API中进行身份验证 我已经到处搜索了一些教程,比如这个:,但它依赖于会话数据。我正在CakePHP 3中构建API,所以我已经查看了一些插件,例如,我可以扩展它以允许google身份验证,但我不确定如何

我正在构建一个与CakePHP3WebAPI接口的Android应用程序。因为RESTful API不能依赖cookie,所以我知道我需要JSON web令牌JWT来实现这一点,我更喜欢使用google登录。我已经让Android端从Google的API请求令牌,但现在我不知道如何将其合并到我的API中进行身份验证

我已经到处搜索了一些教程,比如这个:,但它依赖于会话数据。我正在CakePHP 3中构建API,所以我已经查看了一些插件,例如,我可以扩展它以允许google身份验证,但我不确定如何使用。

使用Gmail登录,并允许使用特定的电子邮件地址登录CakePHP 3.x

要安装的Composer

"google/apiclient": "^2.0"
需要登录的gmail

创建项目并创建密钥和客户端id

设置名称和重定向URL中的项目

注意:-重定向URL必须是.com和.org域 如果您在本地计算机中开发,则创建以下类型的虚拟主机 example.com和example.org

然后创建虚拟主机 按照以下步骤操作:

在app_globle.php中设置配置文件

'Google' => 
[
        'googleClientID' => '123456.apps.googleusercontent.com',
        'googleClientSecret' => 'abcdefghi',
        'googleRedirectUrl' => 'http://example.com/oauth2callback'
    ]
Gmail登录路径

//谷歌登录

$routes->connect('/account/google-login', ['controller' => 'Account', 'action' => 'googlelogin'], ['_name' => 'account-google-login']);


$routes->connect('/oauth2callback', ['controller' => 'Account', 'action' => 'confirmlogin'], ['_name' => 'account-google-redirect-url']);
谷歌登录操作代码:

谷歌重定向url操作

/** *Gmail身份验证重定向操作 *@return-type gmail身份验证数据 */

使用Gmail和特定电子邮件地址登录,以允许在CakePHP 3.x中登录

要安装的Composer

"google/apiclient": "^2.0"
需要登录的gmail

创建项目并创建密钥和客户端id

设置名称和重定向URL中的项目

注意:-重定向URL必须是.com和.org域 如果您在本地计算机中开发,则创建以下类型的虚拟主机 example.com和example.org

然后创建虚拟主机 按照以下步骤操作:

在app_globle.php中设置配置文件

'Google' => 
[
        'googleClientID' => '123456.apps.googleusercontent.com',
        'googleClientSecret' => 'abcdefghi',
        'googleRedirectUrl' => 'http://example.com/oauth2callback'
    ]
Gmail登录路径

//谷歌登录

$routes->connect('/account/google-login', ['controller' => 'Account', 'action' => 'googlelogin'], ['_name' => 'account-google-login']);


$routes->connect('/oauth2callback', ['controller' => 'Account', 'action' => 'confirmlogin'], ['_name' => 'account-google-redirect-url']);
谷歌登录操作代码:

谷歌重定向url操作

/** *Gmail身份验证重定向操作 *@return-type gmail身份验证数据 */


请查看此链接,希望这将帮助您…一个合适的rest API不会使用会话,因此您需要在每个请求中发送某种身份验证,JWT是实现这一点的最佳方法@HareshKumar来自我链接到的同一个教程,无论如何,我完全遵循了它,它生成了令牌,但是当我拥有头授权:Bearer my-long-token-here时,身份验证仍然失败。请查看此链接,希望这将帮助您…正确的rest API不会使用会话,因此,您需要在每个请求中发送某种身份验证,JWT是实现这一点的最佳方式@HareshKumar来自我链接到的同一个教程,无论如何,我完全遵循了它,它生成了令牌,但是当我有头授权时,身份验证仍然失败:这里是我的长令牌。