soljian/steam-authentication-bundle

基于Knojector的工作,用于集成Steam认证的Symfony Bundle。

安装: 371

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

类型:symfony-bundle

1.0.2 2020-02-20 19:39 UTC

This package is auto-updated.

Last update: 2024-09-21 21:09:32 UTC


README

一个提供通过Steam为您的应用程序进行身份验证的Symfony Bundle。

安装与配置

只需通过Composer要求该bundle,并在安装过程中使用提供的flex配方。

composer require soljian/steam-authentication-bundle

在您的.env文件中,为您的Steam API密钥生成了一个新条目。您可以从这里获取您的Steam API密钥:https://steamcommunity.com/dev/apikey

login_route 用户在Steam登录后重定向到的路由

login_redirect 如果登录成功,用户将被重定向到的路由

user_class 您的用户实体类名

request_validator_class RequestValidatorInterface类的类名。如果没有设置,则使用Soljian\SteamAuthenticationBundle\Security\Authentication\Validator\RequestValidator

请确保您的用户实体扩展自Soljian\SteamAuthenticationBundle\User\AbstractSteamUser

<?php

namespace App\Entity;

use Soljian\SteamAuthenticationBundle\User\AbstractSteamUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\Role\Role;

/**
 * @author Soljian
 *
 * @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: Soljian\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 '@SoljianSteamAuthentication/login.html.twig' with { 'btn': 1 } %}

您可以选择两种图像(1或2)作为按钮显示,或者简单地输入自己的文本。