doriantm / steam-authentication-bundle-custome
Symfony Bundle 用于集成 Steam 身份验证
1.0.12
2019-07-19 18:07 UTC
Requires
- php: >=7.1.3
- guzzlehttp/guzzle: ^6.3
- symfony/framework-bundle: ~4.0
- symfony/orm-pack: ^1.0
- symfony/security-bundle: ^4.0
- symfony/twig-bundle: ^4.0
- symfony/yaml: ^4.0
README
这是一个 Symfony Bundle,它为您的应用程序提供通过 Steam 进行身份验证的功能。
安装与配置
只需通过 Composer 需求此组件,并在安装过程中使用提供的 flex 食谱。
composer require knojector/steam-authentication-bundle
在您的 .env
文件中为您生成了一个 Steam API 密钥的新条目。您可以在以下地址获取您的 Steam API 密钥:https://steamcommunity.com/dev/apikey
login_route 用户 Steam 登录后重定向到的路由
login_redirect 如果登录成功,用户将被重定向到的路由
user_class 您的用户实体类名
request_validator_class RequestValidatorInterface 类的类名。如果没有设置,则将使用 Knojector\SteamAuthenticationBundle\Security\Authentication\Validator\RequestValidator
。
确保您的用户实体从 Knojector\SteamAuthenticationBundle\User\AbstractSteamUser
类扩展
<?php namespace App\Entity; use Knojector\SteamAuthenticationBundle\User\AbstractSteamUser; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\Role\Role; /** * @author Knojector <dev@knojector.xyz> * * @ORM\Entity() */ class User extends AbstractSteamUser { /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @return int */ public function getId(): int { return $this->id; } public function __construct() { $this->roles = []; } /** * @return array */ public function getRoles(): array { $roles = []; foreach ($this->roles as $role) { $roles[] = new Role($role); } return $roles; } }
最后,您只需配置您的防火墙。一个工作示例可能如下所示
security: providers: steam_user_provider: id: Knojector\SteamAuthenticationBundle\Security\User\SteamUserProvider firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: anonymous: ~ pattern: ^/ provider: steam_user_provider steam: true logout: path: /logout target: /
要显示“通过 Steam 登录”按钮,只需在您的模板中包含此代码片段
{% include '@KnojectorSteamAuthentication/login.html.twig' with { 'btn': 1 } %}
您可以选择两个图像(1 或 2)作为按钮显示。或者简单地输入您自己的文本。