나는 Ruby 애플리케이션을 토크 박스에 전개했다. 내 응용 프로그램에서 웹 소켓을 보호 할 방법이 필요합니다. stomp websockets를 사용하고 있는데, websocket 연결을 만드는 동안 사용자를 인증하는 방법이 있습니까? 사용자 이름과 암호 매개 변수를 사용할 수는 있지만 현재 무시됩니다. 이 연결을 인증하는 다른 방법이 있습니까? 감사!스톰프 웹 소켓 클라이언트 인증
4
A
답변
1
세션과 저장된 토큰을 사용하여 Stomplet에 대한 메시지를 인증 할 수 있습니다. 이렇게하려면 Torquebox 세션 저장소를 사용하도록 Rails를 설정해야합니다. 이는 같은 config/initializers/torquebox_init.rb
등의 초기화와 함께 수행 할 수 있습니다
AppName::Application.config.session_store :torquebox_store
이제 Stomplet 세션에 액세스 할 수 있습니다. 다음은 세션 매개 변수
:authentication_token
을 사용하여 데이터베이스에서 사용자의 authentication_token과 일치시키는 예제 Stomplet입니다. [인증 토큰, 구독 메시지를 전송하고, 수신 거부를 판정한다
require 'torquebox-stomp'
class StompletDemo
def initialize()
super
@subscribers = []
end
def configure(stomplet_config)
end
def on_message(stomp_message, session)
token = session[:authentication_token]
if is_authenticated?(token)
@subscribers.each do |subscriber|
subscriber.send(stomp_message)
end
end
end
def on_subscribe(subscriber)
session = subscriber.session
if is_authenticated?(session[:authentication_token])
@subscribers << subscriber
end
end
def on_unsubscribe(subscriber)
session = subscriber.session
if is_authenticated?(session[:authentication_token])
@subscribers.delete(subscriber)
end
end
def is_authenticated?(token)
User.where(authentication_token: token).exists?
end
end
지금 당신이해야 할 모든 사용자가 인증되면,
session[:authentication_token]
이 설정되어 있는지 확인합니다. 대부분이이 컨트롤러에 설정 될 것 같은이 문제를 가진 다른 사람들을 위해
# user has successfully authenticates
session[:authentication_token] = @user.authentication_token
1
, 이것은 내가 그것을 해결하는 방법입니다.
https://gist.github.com/j-mcnally/6207839
은 기본적으로 나를 위해 토큰 시스템 didnt 한 규모, 나는 유증을 사용 특히 때문이다. 크롬 확장 프로그램에서 websocket을 호스팅하려면 사용자 이름/암호를 직접 전달하여 stomp에 전달하고 stomplet에서 자체 가상 가입자 세션을 관리하는 것이 더 쉽습니다. 이것은 또한 당신이 누를 곳까지 재미있는 일을 할 수있게 해줍니다.
관련 문제
- 1. 웹 소켓 스톰프 - 브로드 캐스트 (주제, 대기열)
- 2. 토큰으로 웹 소켓 인증
- 3. java 보안 클라이언트 소켓 인증
- 4. Java SSL 소켓 클라이언트 인증
- 5. Python SSL 소켓 클라이언트 인증
- 6. 웹 소켓 인증
- 7. 쌍 웹 소켓 클라이언트
- 8. 웹 소켓 클라이언트 식별
- 9. 웹 소켓 (Socket.io) 및 인증/인증
- 10. ActiveMQ-CPP 스톰프 전용 클라이언트 구축 방법
- 11. 스프링 보안 웹 소켓 인증
- 12. 프로그래밍 웹 소켓 클라이언트 측?
- 13. 톰캣 웹 소켓 클라이언트 프레임
- 14. 웹 서비스 기반 소켓 클라이언트
- 15. 그룹/웹 소켓 클라이언트 식별
- 16. PHP 스톰프
- 17. 클라이언트 - 소켓 소켓 프로그래밍
- 18. 클라이언트 - 클라이언트 소켓 통신
- 19. RabbitMQ 웹 스톰프 클라이언트가 보내는 것을 막으십시오
- 20. 스프링 4 스톰프 웹 소켓 메소드의 기본 및 세션 속성을 얻거나 설정하는 방법
- 21. 스프링 스톰프 헤더 액세스
- 22. VB 소켓 서버 및 웹 소켓 클라이언트 데이터 전송
- 23. Node.js를 웹 소켓 - JS 간단한 클라이언트 서버가
- 24. 웹 소켓 실행 클라이언트 측 프로그래밍
- 25. PHP가 아닌 브라우저 기반 웹 소켓 클라이언트
- 26. 자바 스크립트 : 웹 소켓 클라이언트 IP
- 27. PHP 웹 소켓 서버가있는 Arduino WebSockets 클라이언트
- 28. 여러 프로세스에서 웹 소켓 클라이언트 처리
- 29. 클라이언트 인증 또는 상호 인증
- 30. 클라이언트 (소켓)의 소켓 수신자