laravel - 在 vuejs spa 和 laravel api 中谷歌登录

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

我有一个带有 vue.js 的单页应用程序,它使用 Laravel 5.5 作为它的 api。我想添加谷歌登录,但我不知道从哪里开始。我之前使用过 laravel socialite 添加谷歌登录,但那是针对纯 laravel 应用程序而不是 laravel api。

谁能指出一些我可以阅读的资源。有没有像 socialite 这样的包,有没有办法在这种情况下也使用 socialite。

最佳答案

看看hellojs

Hellojs 让一切变得简单。允许您打开一个弹出窗口以使用社交提供商登录并返回访问 token 。然后您在后端使用访问 token 来获取用户。

所以你的 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)
    }
  )

在你的 Controller 中你处理它就像..

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

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

关于laravel - 在 vuejs spa 和 laravel api 中谷歌登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46924564/

相关文章:

javascript - Laravel、jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)

mysql - 如何在 db 查询生成器或 eloquent 中的 group by 中添加更多列?

html - 使用 v-if 根据变量的值显示 html 元素

vuejs2 - VueJS : How to bind a datetime?

vue.js - 如何在 JavaScript 中将所有对象属性设置为 null?

javascript - Vue:从 parent 那里收到 Prop 后, child 的组件不会改变

php - 关系模型 Laravel 5 上的条件

php - 干净地 emogrify Laravel Blade 模板文件的最佳方法是什么?

javascript - 在Vue JS中获取数据属性作为对象: returning [object object] even with JSON. stringify

javascript - 特定页面上的中间件 - NuxtJS