kolyya/oauth-bundle

Oauth

安装: 12

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master / 0.1.x-dev 2019-01-26 14:34 UTC

This package is not auto-updated.

Last update: 2024-09-27 09:01:24 UTC


README

包 - hwi/oauth-bundle 和 friendsofsymfony/user-bundle 的包装器

创建社交媒体登录和连接/断开账户按钮,将社交媒体数据(姓名、姓氏、电话等)记录到数据库中

目前支持: Vkontakte Facebook Odnoklassniki Mailru Google

安装

  1. 安装并配置 friendsofsymfony/user-bundle

  2. 安装并配置 hwi/oauth-bundle

使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录并执行

$ composer require <package-name>

未使用 Symfony Flex 的应用程序

第 1 步:下载包

打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本

$ composer require <package-name>

此命令要求您全局安装 Composer,如 Composer 文档中的安装章节中所述。

第 2 步:启用包

然后,通过将其添加到项目 app/AppKernel.php 文件中注册的包列表中,来启用包

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new <vendor>\<bundle-name>\<bundle-long-name>(),
        );

        // ...
    }

    // ...
}

集成

config/services.yaml 中将服务设置为公开

services:
    # ...
    Kolyya\OAuthBundle\Security\Core\User\OAuthUserProvider
        public: true

并在 config/packages/security.yaml 中设置它

security:
    # ...
    firewalls:
        # ...
        main:
            # ...
            oauth:
                # ...
                oauth_user_provider:
                    service: Kolyya\OAuthBundle\Security\Core\User\OAuthUserProvider
        # ...

并在 hwi_oauth 的配置中

hwi_oauth:
    # ...
    connect:
        account_connector: Kolyya\OAuthBundle\Security\Core\User\OAuthUserProvider
    # ...

配置

用户实体配置

从 Kolyya\OAuthBundle\Entity\OAuthUser 继承 User

// src/Entity/User.php

// ...
use Kolyya\OAuthBundle\Entity\OAuthUser;

// ...
class User extends OAuthUser
{
// ...

添加用于存储社交媒体数据的属性

// src/Entity/User.php

// ...
class User extends OAuthUser
{
    // ...
    /**
     * @ORM\Column(type="json_array", nullable=true)
     */
    protected $vkontakteData;

    /**
     * @ORM\Column(type="string", length=128, nullable=true)
     */
    protected $vkontakteId;
    
    /**
     * @return mixed
     */
    public function getVkontakteData()
    {
        return $this->vkontakteData;
    }

    /**
     * @param mixed $vkontakteData
     */
    public function setVkontakteData($vkontakteData)
    {
        $this->vkontakteData = $vkontakteData;
    }
    
    /**
     * @return mixed
     */
    public function getVkontakteId()
    {
        return $this->vkontakteId;
    }

    /**
     * @param mixed $vkontakteId
     */
    public function setVkontakteId($vkontakteId)
    {
        $this->vkontakteId = $vkontakteId;
    }
    
    // ...
}

在登录页面添加按钮

{# templates/bundles/FOSUserBundle/Security/login.html.twig #}

{# ... #}
{{ kolyya_oauth_buttons() }}
{# ... #}

在用户个人资料页面添加按钮

{# templates/bundles/FOSUserBundle/Profile/show_content.html.twig #}

{# ... #}
{{ kolyya_connect_buttons() }}
{# ... #}

添加路由

# config/routes.yaml
# ...
kolyya_oauth:
    resource: "@KolyyaOAuthBundle/Resources/config/routing.yml"
    prefix:   /

并删除 hwi_oauth_ 路由

配置

order - 可用社交媒体的顺序和列表

order: ['vkontakte', 'facebook', 'odnoklassniki','mailru','google']

assets.soc_auth_stylesheet - 登录按钮样式文件