doriantm/steam-authentication-bundle-custome

Symfony Bundle 用于集成 Steam 身份验证

安装: 13

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 13

类型:symfony-bundle

1.0.12 2019-07-19 18:07 UTC

This package is auto-updated.

Last update: 2024-09-15 02:35:52 UTC


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)作为按钮显示。或者简单地输入您自己的文本。