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
/login/check-facebook
后面是什么?
login_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 模板的其余部分所在的位置。
我是 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
/login/check-facebook
后面是什么?login_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 模板的其余部分所在的位置。