2013-06-29 4 views
6

우리는 웹 애플리케이션 (암호화가 R으로되어있는 shiny-server)을 실행하고 인증 레이어를 추가하려고합니다. R에서이 작업을 수행하기 위해 무언가를 제작하는 대신 유성을 사용하여 인증 토큰 및 모든 것을 작성하는 방법을 생각했습니다. 인증 토큰, 로컬 저장 공간 및 유성

 
    { "createdAt" : 1372521823708, 
     "_id" : "HSdbPBuYy5wW6FBPL", 
     "services" : { "password" : { "srp" : { "identity" : "vKpxEzXboBaQsWYyJ", 
      "salt" : "KRt5HrziG6RDnWN8o", 
      "verifier" : "8d4b6a5edd21ce710bd08c6affb6fec29a664fbf1f42823d5cb8cbd272cb9b2b3d5faa681948bc955353890f645b940ecdcc9376e88bc3dae77042d14901b5d22abd00d37a2022c32d925bbf839f65e4eb3a006354b918d5c8eadd2216cc2dbe0ce12e0ad90a383636a1327a91db72cf96cd4e672f68544eaea9591f6ed102e1" } }, 
     "resume" : { "loginTokens" : [ 
      { "token" : "t9Dxkp4ANsYKuAQav", 
       "when" : 1372521823708 } ] } }, 
     "emails" : [ 
     { "address" : "[email protected]", 
      "verified" : false } ] } 
  • 이 사용자는 다음과 같습니다

    • 유성 유성을 가진 사용자가 로그인 이런 식으로 뭔가를 보이는 데이터베이스 항목을 작성합니다 이 내가 그 일을 생각했던 방법입니다 "이전 응용 프로그램"으로 리디렉션됩니다. 로컬 스토리지 데이터가
     
        Meteor.loginToken: t9Dxkp4ANsYKuAQav 
        Meteor.userId: HSdbPBuYy5wW6FBPL 
    
    • (? 우린 올바른 동일한 외향 호스트 및 포트를 사용하는 경우에 유성 같은 로컬 저장되어야한다) 여기서 우리는이 정보를 를 로컬 저장소를 체크하고 찾을 "다른 응용 프로그램"에 의해 조사되고 meteor db에 대한 간단한 데이터베이스 쿼리를 수행하여 로컬 저장소 정보가 데이터베이스에있는 것과 일치하는지 확인합니다. 아마도 또한 어떤 종류의 만료 날짜를 확인하십시오. 일치하면 응용 프로그램이 렌더링되고, 그렇지 않으면 렌더링되지 않습니다.

    이 방법을 사용하는 것이 안전합니까? 응용 프로그램간에 로컬 저장소를 공유 할 수 있습니까?

+2

: HTTP : //en.wikipedia. org/wiki/HTTP_cookie # Domain_and_Path. –

+0

이것은 Meteor 및 브라우저 확장을 사용하여 작업 할 때 정확하게 접근 한 방법입니다. –

+0

이 질문에 대한 관련성이 있습니다. shinyStore 패키지를 사용하면 Shiny에서 로컬 스토리지를 암호화 할 수 있습니다 (https://github.com/trestletech/shinyStore). –

답변

0

물론 웹 소켓이 TLS를 통해 실행되는지 확인해야합니다. LocalStorage은 간단한 Same-origin Policy을 사용합니다. 네, 그렇게 할 수 있습니다. LocalStorage는 쿠키만큼 안전합니다. 그렇습니다.

TLDR :

예와 예 합리적인 접근 방법처럼 보인다, 그러나 당신이 당신의 쿠키 도메인과 경로 제한을 조심해야합니다