登录
首页 >  Golang >  Go问答

处理社交登录的完整指南 - 示例流程

来源:stackoverflow

时间:2024-02-29 11:15:27 237浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《处理社交登录的完整指南 - 示例流程》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我有更多概念性问题,我应该如何在我的项目中处理社交登录。 用例是我希望允许用户使用 Facebook 登录,并保留有关该用户的后端信息(电子邮件、名字、姓氏)

我有一些建议 Flow,但我不确定这是否是正确的方法。

假设我有如上所述的应用程序架构。现在我想逐步解释完整的成功流程。

  1. 客户端(Vue 应用程序)调用 AuthProvider (Facebook)
  2. AuthProvider 返回 access_token
  3. 客户端收到 access_token 后,使用 access_tokenuserID 调用 /fb_profile 等后端端点(?)
  4. 后端调用AuthProvider来检查客户端给定的access_token是否有效。
  5. AuthProvider 返回有关用户的信息。 后端获取用户信息后,将其保存到数据库并生成新的 JWT 令牌
  6. 后端将生成的令牌返回给用户

现在我的问题是 - 这是好方法吗?或者我应该以其他方式处理它?喜欢为后端部分保留更多逻辑吗?也许我应该调用后端,然后后端调用 Facebook,而不是从客户端调用 Facebook?


解决方案


以上将是请求流程的顺序(与您的相同)。

这将是我们用于与 Facebook 集成的标准做法。在这种情况下,我强烈建议您使用 Facebook JavaScript SDK

如果您遇到以下问题,请参阅以下链接:

Vuejs component wait for facebook sdk to load

您似乎走在正确的道路上。我可以有很多方法来做同样的事情,这是使用 vue/laravel/passport/socialite/github 对我有用的方法。

  1. 从前端触发控制器重定向,

  2. Provider(此处为 github 应用程序)在浏览器中触发,其 url 使用保存在后端 config/env 中的客户端 ID/应用程序名称。填写您的登录详细信息

  3. 它将按照在提供程序中创建并在后端中配置的方式进行重定向 -> 在前端显示它,在我的例子中是它

    http://localhost:8080/authorize/github/callback

  4. 现在从前端触发控制器中的回调,它将检查用户详细信息是否已存在,并根据逻辑插入是否是第一次用户。然后它会将access_token发送回前端,该token可以在前端用于所有操作

DB

本篇关于《处理社交登录的完整指南 - 示例流程》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>