Flask 如果用户通过社交登录登录,移动应用程序如何通过后端API进行身份验证?

Flask 如果用户通过社交登录登录,移动应用程序如何通过后端API进行身份验证?,flask,oauth-2.0,jwt,flask-restful,Flask,Oauth 2.0,Jwt,Flask Restful,我试图了解移动应用上社交登录之间的基本组织和登录流,以及该应用如何从后端api请求资源 如果用户通过Facebook登录应用程序,那么后端api如何基于该登录提供资源?因为后端似乎不知道用户已登录Facebook facebook是否需要向应用程序发送令牌,然后由后端api通过facebook进行验证?我建议您首先了解单点登录机制: 然后,您可以从这里了解Facebook用于SSO的OAuth2 简单地说,您是正确的,当用户登录Facebook时,后端将从Facebook获得用于该用户身份

我试图了解移动应用上社交登录之间的基本组织和登录流,以及该应用如何从后端api请求资源

如果用户通过Facebook登录应用程序,那么后端api如何基于该登录提供资源?因为后端似乎不知道用户已登录Facebook


facebook是否需要向应用程序发送令牌,然后由后端api通过facebook进行验证?

我建议您首先了解单点登录机制:

然后,您可以从这里了解Facebook用于SSO的OAuth2


简单地说,您是正确的,当用户登录Facebook时,后端将从Facebook获得用于该用户身份验证/授权的令牌。

当在XYZ网站上单击Facebook/Google登录时,就会发生这种情况

  • XYZ网站与XYZclientID一起重定向到Facebook登录页面(XYZ应该已经作为开发者在Facebook下注册)
  • Facebook确定XYZ(使用XYZclientID)想要对ABC人员进行身份验证
  • ABC个人登录facebook
  • Facebook发布授权代码(针对ABC+XYX组合)并重定向回XYZ网站
  • XYZ使用此授权代码+XYZclientID+XYZclientCret来获取承载令牌
  • Facebook验证该秘密并发布一个不记名令牌(链接到ABC person)
  • XYZ使用此承载令牌检索ABC人员的详细信息。(不能用于检索DEG人员的数据)
  • Facebook向XYZ提供ABC的电子邮件和其他个人详细信息,XYZ显示ABC已登录

  • 这里有更详细的说明:

    谢谢。如果用户在应用程序上使用facebook进行身份验证,我的后端并不需要额外的facebook资源,因为我只需要从基本配置文件中请求一封电子邮件。问题是,应用程序应该始终拥有对后端本身的授权。