Symfony-Security-使用-Guard-实现-OAuth-登录

Symfony Security无论进行何种身份验证,本质上都是通过用户凭证 (credentials) 寻找用户 (user class) 的过程,无论是传统的表单 (username/password) 登录还是 API 令牌 (token),凭证通常存储于请求对象 (header, body, query 等) 中,因此从请求对象中提取用户凭证并寻找用户的过程,即称之为认证 (Authentication) 。 Symfony Security 安全组件由 4 个子组件组合而成,它们之间相互独立,你可以选择性的安装。 组件描述security-core提供用户密码加密到认证、授权等基本安全功能。security-guard一个抽象的身份验证层,用于创建复杂的身份验证系统。security-http将安全组件与 HTTP 协议相互集成,以处理安全方面的请求和响应。security-csrf为跨域请求伪造 (CSRF) 提供验证和保护。使用 Symfony Security 需要预先安装,由于 security-bundle 已经集成了所有的安全组件,因此只需要安装它即可: $ composer require symfony/security-bundle实现 Github 登录要实现 Github 登录,首先需要在 Settings -> Developer settings -> OAuth Apps -> New OAuth App 创建一个应用,并设置认证回调地址(Authorization callback URL),创建成功之后会分配你一个 Client ID 和 Client Secret,将此参数复制到项目 环境变量文件: # .env.localGITHUB_CLIENT_ID=YOUR_CLIENT_IDGITHUB_CLIENT_SECRET=YOUR_CLIENT_SECRET创建一个类用于集中管理 Github API 访问服务,我们使用 http-client 组件作为 HTTP 客户端: ...

September 10, 2019 · 4 min · jiezi