craffft / contao-oauth2-bundle

此包已被废弃,不再维护。未建议替代包。

ContaoOAuth2Bundle for Symfony with Contao

安装: 38

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 2

开放问题: 1

类型:contao-bundle

1.1.0 2018-01-29 19:21 UTC

This package is not auto-updated.

Last update: 2020-08-21 20:32:18 UTC


README

Build Status

Contao OAuth2 Bundle

Contao OAuth2 Bundle for Symfony

安装

步骤 1:下载包

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

$ composer require craffft/contao-oauth2-bundle "~1.0"

此命令需要您全局安装了Composer,请参阅Composer文档中的安装章节

步骤 2:启用包

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

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            // Add them all!
            new Contao\CoreBundle\HttpKernel\Bundle\ContaoModuleBundle('multicolumnwizard', $this->getRootDir()),
            new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
            new Craffft\ContaoOAuth2Bundle\CraffftContaoOAuth2Bundle(),
        );

        // ...
    }

    // ...
}

步骤 3:配置包

接下来,将以下配置添加到项目的app/config/config.yml文件中

# app/config/config.yml

# ...
# Doctrine configuration
doctrine:
    dbal:
        # ...
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true

# ...

# FOS OAuth2 Server Bundle
fos_oauth_server:
    db_driver: orm
    client_class:        Craffft\ContaoOAuth2Bundle\Entity\OAuth2Client
    access_token_class:  Craffft\ContaoOAuth2Bundle\Entity\OAuth2AccessToken
    refresh_token_class: Craffft\ContaoOAuth2Bundle\Entity\OAuth2RefreshToken
    auth_code_class:     Craffft\ContaoOAuth2Bundle\Entity\OAuth2AuthCode
    service:
        user_provider: craffft.contao_oauth2.user_provider

在app/config/routing.yml中导入路由配置文件

# app/config/routing.yml

fos_oauth_server_token:
    resource: "@FOSOAuthServerBundle/Resources/config/routing/token.xml"

fos_oauth_server_authorize:
    resource: "@FOSOAuthServerBundle/Resources/config/routing/authorize.xml"

复制vendor/contao/core-bundle/src/Resources/config/security.yml文件的内容,并用它替换app/config/security.yml文件。然后按照以下代码进行修改

# app/config/security.yml

# ...
security:
    encoders:
        Craffft\ContaoOAuth2Bundle\Entity\Member:
            id: craffft.contao_oauth2.contao_password_encoder

    firewalls:
        oauth_token:                                   # Everyone can access the access token URL.
            pattern: ^/oauth/v2/token
            security: false

        api:
            pattern: ^/api                             # All URLs are protected
            fos_oauth: true                            # OAuth2 protected resource
            stateless: true                            # Do no set session cookies
            anonymous: false                           # Anonymous access is not allowed

步骤 4:生成数据库表

将数据库表改为InnoDB,以防止模式更新错误。

ALTER TABLE tl_member ENGINE=InnoDB;
ALTER TABLE tl_oauth_client ENGINE=InnoDB;

请使用以下命令更新您的数据库,因为contao安装工具不会生成symfony相关的表。

php app/console doctrine:schema:update --force