Laravel Vue SPA -社会认证



背景故事:

我最近进入Web Development如果你们能分享一些很棒的材料/教程,我可以学习,我真的很感激,已经有几个Udemy课程,并在网上搜索,但我仍然有一些担忧。

对于第一个项目,我想创建一个应用程序,这将是SPA。这将是一个基本的待办事项应用程序,用户可以登录并将待办事项添加到他们的列表。

问题/问题:

如何仅使用Social Accounts实现登录功能(没有常规的Email/Password方法)?如果用户第一次使用登录特性,他将被注册/添加到存储其数据的数据库中,并且第二次使用时,他将登录并相应地获取数据。我在想Laravel Socialite虽然,我不确定它是否用于SPA (登录而不重新加载/重定向)页面?如果是,我是否需要任何额外的分支/插件?

我找到了Universal Social Auth但是,我不确定它是否完全符合我的需要,以及如何正确地实现/配置它。

总而言之,如果你们能在这里分享一些光明,或者分享一些关于这方面的教程或文章,我将非常感激。

后端:

  • Laravel

前端:

  • VueJS

  • VueX

  • VueRouter

  • Vue I18n
  • Axios, Vue-Axios

你需要Laravel Socialite从身份提供者(它可能是谷歌,Github, Facebook或其他东西)获取用户数据。它将使用Oauth2协议。您将存储希望使用的第三方身份验证的client_id和client_secret。用户将点击例如Sign up with Google,它将重定向到谷歌登录页面。如果他填写正确的用户名和密码,您将通过使用Socialite::driver('github')->user()获得他的用户信息。

你可以使用updateOrCreate()方法来创建用户,如果它已经不存在于你的数据库或只是更新他的数据。电子邮件或用户名字段可以是标识符或任何唯一的,适用于您的情况。

在数据库中找到用户或创建新用户后,应该使用会话cookie或某种令牌将其登录到应用程序。整个验证过程发生在后端,只有当你成功登录用户到你的应用程序时,你才能向前端Vue端发出cookie。所以回答你的问题,是的,你可以使用Socialite与SPA。

不要将Laravel Socialite/Oauth2与认证过程/Laravel Sanctum混在一起。

Former用于检索用户数据而无需在您的网站上注册。后者是为特定用户提供API的实际访问权限。

最新更新