webundle / puzzle-connect
管理用户安全
1.0.0
2018-09-25 06:48 UTC
Requires
- php: >=5.5.9
- doctrine/doctrine-bundle: ^1.6
- doctrine/orm: ^2.5
- guzzlehttp/guzzle: ^6.3
- incenteev/composer-parameter-handler: ^2.0
- sensio/distribution-bundle: ^5.0.19
- sensio/framework-extra-bundle: ^5.0.0
- symfony/assetic-bundle: ^2.8
- symfony/monolog-bundle: ^3.1.0
- symfony/polyfill-apcu: ^1.0
- symfony/swiftmailer-bundle: ^2.6.4
- symfony/symfony: 3.4.*
- twig/twig: ^1.0||^2.0
This package is auto-updated.
Last update: 2024-09-26 01:06:08 UTC
README
=========================================
Puzzle 扩展包,用于管理基本的和 OAuth 认证以及用户账户
步骤 1: 下载 Bundle
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本
composer require webundle/puzzle-connect
步骤 2: 启用 Bundle
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的 Bundle 列表中来启用该 Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Puzzle\ConnectBundle\PuzzleConnectBundle(), ); // ... } // ... }
步骤 3: 注册路由
在应用程序中加载 Bundle 的路由定义(通常在 app/config/routing.yml
文件中)
app/config/routing.yml
puzzle_connect: resource: "@PuzzleConnectBundle/Resources/config/routing.yml"
步骤 4: 配置 Puzzle OAuth 选项
然后,通过管理模块界面将管理 Bundle 启用,通过将其添加到项目 app/config/config.yml
文件中注册的 Bundle 列表中
puzzle_connect: client_id: client_id_value client_secret: client_secret_value base_authorize_uri: 'http://account.puzzle.ci/oauth/v2/authorize' base_token_uri: 'http://account.puzzle.ci/oauth/v2/token' default_redirect_uri: oauth default_scope: 'user' host_apis: 'http://apis.puzzle.ci'
步骤 5: 安全性
然后,在项目 app/config/security.yml
文件中配置安全性
security: encoders: ... Puzzle\ConnectBundle\Entity\User: algorithm: sha512 encode_as_base64: false iterations: 1 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_ALLOWED_TO_SWITCH, ROLE_ADMIN] providers: ... connect_provider: id: puzzle_connect.provider.user firewalls: main: host: '%host_account%' pattern: '^/' entry_point: puzzle_connect.security.authentication.form_entry_point entry_point: null logout_on_user_change: true form_login: provider: connect_provider check_path: login_check login_path: login success_handler: puzzle_connect.handler.authentication_success username_parameter: _username password_parameter: _password csrf_parameter: _csrf_token csrf_token_id: authenticate post_only: true remember_me: true require_previous_session: true switch_user: provider: connect_provider parameter: _swu role: ROLE_ALLOWED_TO_SWITCH remember_me: secret: '%secret%' path: / domain: '%host_admin%' secure: false httponly: true lifetime: 31536000 remember_me_parameter: _remember_me logout: path: logout target: login invalidate_session: true delete_cookies: a: { path: /, domain: ~ } anonymous: true access_control: ... - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/oauth, roles: IS_AUTHENTICATED_ANONYMOUSLY, host: '%host_admin%' } - { path: ^/, roles: ROLE_ADMIN, host: '%host_admin%' }