В настоящее время я использую следующий гем 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 'username=foo&password=*****'</h2>
Так возможно ли иметь «безсессионный» API-интерфейс, защищенный LDAP, при использовании devise_ldap_authenticatable? или мне нужно получить токен и повторно ввести этот токен для следующих запросов?
Спасибо,