Безсессионная LDAP-аутентификация Rails 5 API - PullRequest
0 голосов
/ 04 сентября 2018

В настоящее время я использую следующий гем https://github.com/cschiewek/devise_ldap_authenticatable для обеспечения аутентификации ldap для моего интерфейса Rails

приложение / модели / user.rb

class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :ldap_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # hack for remember_token
  def authenticatable_salt
    Digest::SHA1.hexdigest(username)[0,29]
  end

  def email_required?
    false
  end

end

main_controller.rb

class MainController < ApplicationController
  skip_before_action :verify_authenticity_token, :only => [:create]
  before_action :authenticate_user!

Аутентификация LDAP работает правильно, и я могу успешно пройти аутентификацию.

Я также хочу иметь API, защищенный с помощью аутентификации LDAP, но без использования токена (один вызов, один поиск).

Если я отправляю POST в мой API, используя следующий код

curl -H "Content-Type: application/json" -X POST --data 'user=foo&pass=*****' http://localhost:3000/api/v1/main

приложение / контроллеры / API / v1 / main_controller.rb

class Api::V1::MainController < Api::V1::BaseController

  before_action :authenticate_user!

(Очевидно, это будет защищено через HTTPS в производстве)

Я получаю

  <h2>765: unexpected token at &#39;username=foo&amp;password=*****&#39;</h2>

Так возможно ли иметь «безсессионный» API-интерфейс, защищенный LDAP, при использовании devise_ldap_authenticatable? или мне нужно получить токен и повторно ввести этот токен для следующих запросов?

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...