我有一个vue.js
的单页应用程序,它使用Laravel 5.5
作为其api。我想添加谷歌登录,但我很困惑,从哪里开始。我之前使用过laravel socialite
来添加Google登录,但这是用于纯粹的laravel应用程序而不是laravel api。
任何人都可以指出我能阅读的一些资源。是否有类似社交名媛的包,在这种情况下是否有办法使用社交名媛。
答案 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>