HWIOAuthBundle:配置参数是什么意思?

HWIOAuthBundle: What do the configuration parameters mean?

我是 Symfony (v3) 开发人员的新手,我尝试使用 HWIOAuthBundle 在我的 Web 应用程序上实现 Facebook 登录。我已经阅读了 OAuth2 并了解使用授权码的基本工作流程。此外,我还研究了 Facebook 在 tutorial. Also I followed the complete HWIOAuthBundle tutorial 上的相关内容。但是,由于 HWIOAuth 端的文档非常稀疏,我仍然无法掌握 "all the magic" 捆绑包内部发生的事情。

(1) 我没完全理解这个例子 Twig Template:

(a) 如果我理解正确,如果 response.status === 'connected' 那么 Facebook 已经返回了访问令牌。在模板中,调用 url("hwi_oauth_service_redirect", {service: "facebook"})。我是否正确地假设服务背后的控制器然后从 Facebook 加载其余用户信息,然后调用配置的 oauth_user_provider 以在 symfony 中启动身份验证过程?

(b) 如果 response.status 不等于 connected,则用户仍未登录(未登录 Facebook 或未登录应用)。在 Twig 模板中,再次重定向到 url("hwi_oauth_service_redirect", {service: "facebook"})为什么再次调用同一个控制器,然后它做了什么?

(2) 我不理解 HWIOAuthBundle 中显示的所有配置参数 tutorial:

(a) routing.yml:

hwi_oauth_login: resource: "@HWIOAuthBundle/Resources/config/routing/login.xml" prefix: /login

适合什么?

(b) security.yml:

oauth: resource_owners: facebook: "/login/check-facebook" login_path: /login failure_path: /login

1)a) 否。控制器 (link) 最终将用户重定向到授权 url 它将用户重定向到授权 url

1)b) 您可以登录 Facebook,但您过去可能拒绝过该应用程序。 FB.login 再次请求用户许可(这就是为什么要在此处添加 scope:email)

2)a) 如果您检查file,它会在前缀下加载登录路由,您会看到它在“/”路径下添加了一个路由,放置前缀可以帮助您避免与您的冲突其他路线。

2)b) 它不是真正的路由,它被防火墙拦截以检查用户身份验证。如果你已经实现了一个正常的登录 html 表单,它与 /login_check 相同,它是你的登录 html 表单操作所在的位置,但它后面没有控制器。 Symfony 安全性非常灵活,因此您可能会有点复杂,我建议您看看 Sarah Khalil 的 slides,她在其中解释了它。 login_path 是您的普通登录表单所在的位置,在这种情况下,它是您的 Facebook 登录按钮和您的 twig 模板的其余部分所在的位置。