Authentication 环回facebook登录

Authentication 环回facebook登录,authentication,facebook-graph-api,loopback,nextjs,Authentication,Facebook Graph Api,Loopback,Nextjs,我试图通过使用环回作为API来实现登录facebook 跟随 我无法将教程应用到我的案例中,因为在示例中, 客户端和服务器端在同一个项目上 我的应用程序: Web应用程序(NextJS自定义express服务器) 示例端点:www.myapp.com 在发送到API后,用户单击“通过facebook登录”按钮获取访问令牌 API应用程序(环回) 示例端点:www.api-myapp.com API从客户端获取访问令牌,然后从facebook graph API获取数据 如果存在电子邮件,则

我试图通过使用环回作为API来实现登录facebook

跟随 我无法将教程应用到我的案例中,因为在示例中, 客户端和服务器端在同一个项目上

我的应用程序:

  • Web应用程序(NextJS自定义express服务器)

    • 示例端点:www.myapp.com
    • 在发送到API后,用户单击“通过facebook登录”按钮获取访问令牌
  • API应用程序(环回)

    • 示例端点:www.api-myapp.com
    • API从客户端获取访问令牌,然后从facebook graph API获取数据
    • 如果存在电子邮件,则自动登录并将令牌返回给客户端
    • 否则注册一个新用户并将令牌返回到客户端
  • 从以下流程中,我无法使用环回实现此流程:(
    在正常情况下,我可以通过用户名和密码注册/登录,但我无法通过facebook登录注册/登录。

    使用环回很容易实现此行为。假设您遵循以下步骤,您只需:

    • 启用
      facebook passport
      身份验证
    • 在前端创建一个“使用facebook登录”按钮,将用户重定向到
      authpath
      (即
      http:///auth/facebook
    • successRedirect
      设置为
      http://

    使用环回很容易实现此行为。假设您遵循以下步骤,您只需:

    • 启用
      facebook passport
      身份验证
    • 在前端创建一个“使用facebook登录”按钮,将用户重定向到
      authpath
      (即
      http:///auth/facebook
    • successRedirect
      设置为
      http://

    谢谢你的建议:)顺便说一句,我设置了successRedirect到我的web应用程序,但我没有从他们那里获得任何数据。我如何获得访问令牌和用户数据,例如
    access\u令牌
    userId
    将只为您的API服务器而不是应用服务器设置。A)您的API服务器和应用服务器需要共享同一个域,以便您可以共享Cookie;B)创建API端点,该端点通过JSON返回当前登录的用户。通过查询参数发送access_令牌和userId是否正确<代码>app.get('/auth/account',function(req,res,next){var User=app.models.consumer;User.findById(req.accessToken.userId,function(err,User){if(err){next(err);}res.redirect(301,'http://localhost:3001/login?accessToken=“+req.accessToken.id+”&userId='+user.id);});})这样做显然很好,尽管Express有一些不带字符串的值编码方法:但是,您不应该通过该端点返回
    access\u令牌
    ,这会让任何(恶意)应用程序获得API令牌。为什么您需要应用程序中的API令牌?谢谢您的建议:)顺便说一句,我设置了successRedirect到我的web应用程序,但我没有从他们那里获得任何数据。如何获取访问令牌和用户数据,例如
    access\u令牌
    userId
    将仅为您的API服务器而不是应用服务器设置。A)您的API服务器和应用服务器需要共享同一个域,以便您可以共享Cookie;B)创建API端点,该端点通过JSON返回当前登录的用户。通过查询参数发送access_令牌和userId是否正确<代码>app.get('/auth/account',function(req,res,next){var User=app.models.consumer;User.findById(req.accessToken.userId,function(err,User){if(err){next(err);}res.redirect(301,'http://localhost:3001/login?accessToken=“+req.accessToken.id+”&userId='+user.id);});})这样做显然很好,尽管Express有一些不带字符串的值编码方法:但是,您不应该通过该端点返回
    access\u令牌
    ,这会让任何(恶意)应用程序获得API令牌。为什么在应用程序中需要API令牌?