ekreative/redmine_login 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ekreative/redmine_login

最新稳定版本:3.8.2

Composer 安装命令:

composer require ekreative/redmine_login

包简介

Login to symfony using redmine as user provider

README 文档

README

Latest Stable Version License Build Status SensioLabsInsight Coverage Status

Install

composer require ekreative/redmine_login

Kernel

new Ekreative\RedmineLoginBundle\EkreativeRedmineLoginBundle()

Parameters

parameters:
    redmine: 'http://www.redmine.org'

Config

ekreative_redmine_login:
    redmine: %redmine%

Routing

ekreative_redmine_login:
    resource: "@EkreativeRedmineLoginBundle/Resources/config/routing.yml"

Security

security:

    providers:
        webservice:
            id: ekreative_redmine_login.provider

    firewalls:
        unsec:
            pattern: ^/login$
            security: false

        secured_area:
            pattern: ^/
            anonymous:
            simple_form:
                authenticator: ekreative_redmine_login.authenticator
                check_path:    login_check
                login_path:    login
                username_parameter: login[username]
                password_parameter: login[password]
            simple_preauth:
                authenticator: ekreative_redmine_login.api_authenticator
            logout:
                path: /logout

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_REDMINE }

Security

You can secure your own routes using two roles

  • ROLE_REDMINE
  • ROLE_REDMINE_ADMIN

Make Request

$projects = json_decode($this->get('ekreative_redmine_login.client_provider')->get($this->getUser())->get('projects.json')->getBody(), true)['projects']

Login as api user

POST /login HTTP/1.1
Content-Type: application/json

{
    "login": {
        "username": "username",
        "password": "password"
    }
}

Response

200 OK

{
  "user": {
    "id": 1,
    "username": "username",
    "firstName": "Name",
    "lastName": "Last",
    "email": "user@domin.com",
    "createdAt": "2000-01-01T00:00:00+00:00",
    "lastLoginAt": "2000-01-01T00:00:00+00:00",
    "apiKey": "your_api_key",
    "status": 1
  }
}

Logged in:

GET /admin HTTP/1.1
Host: 127.0.0.1:8000
X-API-Key: your_api_key

Custom user class

If you want to use a custom user class then its very easy! There are two ways

  • Either override the parameter ekreative_redmine_login.user.class with the name of your own class that extends RedmineUser.

  • Or override the service ekreative_redmine_login.user_factory with a service that implements RedmineUserFactoryInterface. You will want to do this if you are using Doctrine.

RedmineUser contains all the annotations for use with Doctrine, so its super simple to store users in the database.

Api Doc

If you want the api doc to be listed then use NelmioApiDocBundle

Kernel

new Nelmio\ApiDocBundle\NelmioApiDocBundle()

Routing

NelmioApiDocBundle:
    resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
    prefix:   /api/doc

Security

Replace the standard unsec

unsec:
    pattern: ^/(login$|api/doc)
    security: false

统计信息

  • 总下载量: 655
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-06-27