2017-04-18 49 views
1

我正在使用基于Laravel freamwork的OctoberCMS。试图添加Google登录api到octobercms

我想在我的网站上有“使用Google帐户登录”的选项。

因此,我去了https://developers.google.com/identity/sign-in/web/devconsole-project ,我暂停了所有步骤以“使用后端服务器进行身份验证”。 Becouse我没有ssh访问我的域名(我无法使用Composer安装库)​​,所以我在.zip下载了PHP的Google API客户端库。

我将它解压到'plugins/nameOfMyplugin/google'。

我被卡住了,因为我没有任何想法如何发送ID令牌到我的服务器并验证它与这些库,然后我想创建新的用户在我的数据库,如果不存在我的rainlab.user.plugin。

谢谢你的帮助。

+1

您可以安装这个插件https://开头octobercms。com/plugin/flynsarmy-sociallogin –

+0

我做到了,但它不能正常工作......当有人从第一次登录网站时,正在创建帐户并自动登录。但是当他/她注销,那么就不可能再登录一次......我已经写了一个问题来支持这个插件,但是同时我正在想用自己的方式“用Google API登录”...... –

+0

根据sociallogin - 不时可以登录,但不总是。我发现这个'我的事件日志中的'在第124行的/plu​​gins/flynsarmy/sociallogin/vendor/firebase/php-jwt/src/JWT.php'中的2017-04-19T07:51:41 + 0000之前无法处理令牌...... @ Pierre-AndréVullioud –

回答

1

我已经解决了。

在octoberCMS没有理由通过你自己连接谷歌的API,更好的解决方案是下载已经使插件(octobercms.com/plugin/flynsarmy-sociallogin)这是工作。

我刚下载octobercms.com/plugin/flynsarmy-sociallogin,但正如我之前说的,有一些问题,登录到我的网站。

我播下注销和登录到我的网站之间每12分钟休息我可以登录。当我在登出后11分钟后尝试登录时,它不起作用。

我去我的后端/设置/日志/事件日志和母猪

无法处理令牌之前2017-04-19T08:27:14 + 0000的public_html /插件/ flynsarmy/sociallogin /供应商/ firebase/php-jwt/src/JWT.php在线124.

这意味着我的服务器时间晚了12分钟。 有2种方式来解决这个问题:

第一个为安全起见不好:

集插件/ flynsarmy/sociallogin /供应商/火力/ PHP的智威汤逊/ src目录/ JWT.php 公共静态$ leeway = x; 其中x是secunds,在我的例子 或者从123加在这个时间差:

if (isset($payload->iat) && $payload->iat > ($timestamp + static::$leeway + 
**720**)) { 
    throw new BeforeValidException('Cannot handle token prior to ' . date(DateTime::ISO8601, $payload->iat) 
    ); 
} 

但正如我所说......这不是安全......

第二种方法是以正确的方式在服务器上设置时间。

有很多解决方案,如何做到这一点:

http://www.inmotionhosting.com/support/website/php/update-local-php-settings

https://help.directadmin.com/item.php?id=52

http://forum.directadmin.com/showthread.php?t=1817