谷歌登录vuejs spa和laravel api

时间:2017-10-25 05:25:17

标签: laravel vue.js vuejs2 google-signin laravel-5.5

我有一个vue.js的单页应用程序,它使用Laravel 5.5作为其api。我想添加谷歌登录,但我很困惑,从哪里开始。我之前使用过laravel socialite来添加Google登录,但这是用于纯粹的laravel应用程序而不是laravel api。

任何人都可以指出我能阅读的一些资源。是否有类似社交名媛的包,在这种情况下是否有办法使用社交名媛。

2 个答案:

答案 0 :(得分:2)

看看hellojs

Hellojs使其变得容易。允许您打开一个弹出窗口以使用社交提供程序登录并返回访问令牌。那么您可以在后端使用访问令牌来获取用户。

所以您的js看起来像这样

 hello
  .login(network)
  .then(
    () => {
      const authRes = hello(network).getAuthResponse();
      axios
        .get('api/link/to/sociak/callback',{
            params:{
              access_token : authRes.access_token, 
              provider: network
            }
         })
        .then((response) => {console.log(response.data.token)})})
        .catch((error) => {console.log(error.response.data)})
    },
    (e) => {
      console.log(e)
    }
  )

,在您的控制器中,您将像..

public function handleProviderCallback(Request $request)
{
    $s_user = Socialite::with($request->provider)->stateless()->userFromToken($request->access_token);
    //your logic here...
}

希望它使您更清楚。我只是为此而苦苦挣扎,而您好js使我的生活变得简单

答案 1 :(得分:0)

除上述答案外,我使用vue-hellojs添加了goolgle的身份验证窗口并获得了令牌(具有“电子邮件,个人资料”范围)。

然后将其发送到laravel后端(安装了google socialite provider和CORS),后者检查是否有该电子邮件的用户,并像登录时一样通过laravel jwt-token对vue SPA进行响应。< / p>