2014-05-27 7 views
4

Я искал высоко и низко, но не нашел ничего, что могло бы помочь.Laravel and oauth 2

Я новичок в oAuth.

Я использую https://github.com/lucadegasperi/oauth2-server-laravel.

Я создаю службу API REST. The Client будет веб-сайтом. Я использую Password Flow для аутентификации.

Мое понимание, пожалуйста, исправьте меня, если я ошибаюсь.

oauth_clients таблица (id, секрет, имя). The Client - это Веб-сайт, а не отдельные пользователи, которые входят в систему на веб-сайте. Я буду использовать идентификатор и секретный код The Client с именем пользователя и паролем пользователя.

Я следую инструкциям на странице выше.

Я использую метод POST на http://api.domain.com/oauth/access_token?grant_type=password&client_id=BCA545A934F5F4528DA3EE567E8E4&client_secret=5184B7C4E11ED3EEF99DA1A1DD9C3&[email protected]&password=password&scope=scope1,scope2&state=123456789

Это подтверждает подлинность как клиента и пользователя штраф, но вот вопрос. Я понятия не имею, где я установить scope или state

Это ответ { "error": "invalid_scope", "error_description": "The requested scope is invalid, unknown, or malformed. Check the \"scope1\" scope." }

Я честно не знаю, что следующий шаг, даже если я установить Scope или государство, что является следующим шагом ?

Спасибо.

РЕДАКТИРОВАТЬ

Я добавил фиктивную запись в таблицу объема и добавил это значение к размаху, и она работала.

Теперь я понимаю сферу действия, я просто не знаю, почему это требуется.

Я получил ответ с токеном доступа. Теперь я понимаю концепцию oAuth. Я уже реализовал систему входа/доступа, но я мог бы избавиться от нее и придерживаться oAuth. Я пытался использовать oAuth для аутентификации веб-сайта в службе REST API, но не похоже, что это способ сделать это.

Итак, теперь мой следующий вопрос: есть ли способ добавить токен доступа в заголовок вместо параметра URL?

+0

Вы пытаетесь сделать услугу OAuth или пытается войти в систему пользователя с сервисом социальной Идент? –

+0

oAuth Service. Существует ли лучший способ подключения службы API к веб-сайту. Я хотел бы заблокировать API, так что только веб-сайт может получить к нему доступ с возможностью открытия частей API. – user742736

ответ

4

Публикация сервера OAuth2 configuration (если это еще не сделано) с использованием

php artisan config:publish lucadegasperi/oauth2-server-laravel 

Открыть файл app/config/packages/lucadegasperi/oauth2-server-laravel/oauth2.php

Если вам не нужно областей, просто добавить одну область с именем basic к oauth_scopes таблице.

|-------------------------------------------------------------------------- 
    | Default Scope 
    |-------------------------------------------------------------------------- 
    | 
    | The default scope to use if not present in the query string 
    | 
    */ 
    'default_scope' => 'basic', 

Не нужно добавлять параметр области в запрос access_token.

Q2: Есть ли способ добавить токен доступа в заголовок вместо параметра URL?

Да. По умолчанию он проверяет строку запроса и заголовки http.

Изменение ниже вариант true для предотвращения access_token проверки при условии, в виде строки запроса

|-------------------------------------------------------------------------- 
    | HTTP Header Only 
    |-------------------------------------------------------------------------- 
    | 
    | This will tell the resource server where to check for the access_token. 
    | By default it checks both the query string and the http headers 
    | 
    */ 
    'http_headers_only' => false,