2016-09-29 4 views
0

나는 과거에 클라이언트 측 $ window.sessionStorage에 사용자 토큰을 저장하는 손을 굴린 앱을 만들었습니다.User Auth - oAuth questions

나는 그때부터 이것이 안전하지 않다는 것을 깨달았습니다. 나는 노드/익스프레스 백엔드 api를 사용하는 앱을 안전하게 보호하기위한 가장 안전한 표준 방법을 찾고 있으며 웹용 또는 네이티브 모바일 앱과 같은이 api에 요청을하는 프런트 엔드를 사용합니다. . 또한 브라우저를 닫을 때마다 $ 윈도우의 세션 저장소가 지워졌 기 때문에 다시 로그인해야합니다.

내가 지금까지 조사한 바에 따르면, 가장 안전한 방법은 HTTP 전용 보안 쿠키에 jwt를 저장하는 것입니다.

그러나 oAuth와 같이 이미 존재하는 서비스를 사용하고 싶습니다. 몇 가지 질문 :


1) oAuth는 사용자 기반의 소유자를 유지하는 데 얼마나 안전합니까? 3 년이 지난 지금 갑자기 또는 천천히 죽는다면 어떨까요? 모든 사용자가 기술적으로 서버에 저장되어 있지 않습니까? 내 앱을 내 기본 사용자로 유지하려면 어떻게해야합니까?

2) snapchat, twitter, tumblr 등과 같은 영역에서 시작 응용 프로그램을 만들려면 oAuth와 같은 서비스를 사용하여 내 인증을 처리하는 것이 일반적으로 권장됩니까? 물론 미래는 알려지지 않았지만 내 앱이 수백만 명의 사용자에게 다가 갈 수 있다고 가정하면 oAuth와 같은 서비스를 사용하는 것이 현명한 선택일까요? 일단 oAuth를 사용하기 시작하면, 1 년에서 2 년 동안 자신의 데이터베이스에 사용자를 저장하는 일은 결코 없을 것입니다.

감사합니다.

+0

권장 사항이 * 명시 적으로 * 주제에서 벗어난 SO합니다. – jonrsharpe

+0

무엇에 관한 권장 사항? –

+0

모든 것, 인증 프로토콜 및 서비스가 포함됩니다. – jonrsharpe

답변

0

OAuth는 인증을위한 공개 표준입니다.

아마 Auth0에 대해 생각하고 있습니다. Auth0, Stormpath, Apigee, UserApp, AuthRocket 또는 Amazon Cognito를 포함하여 사용자 권한 부여를 처리 할 수있는 많은 서비스가 있습니다. 어떤 것을 선택 하든지, 서비스 사용을 중단하려는 경우에 대비하여 데이터베이스를 가져올 수 있는지 확인하십시오. 모든 사람이 명시 적으로 떠날 수있는 쉬운 방법을 제공하지는 않지만, 그것이 중요하다면 누가 당신의 필요에 부응하는지, 누가 필요로하지 않는지 확인해야합니다.

OAuth는 https://en.wikipedia.org/wiki/OAuth 문서를 참조하십시오. Wikipedia에는 ​​거대한 list of OAuth providers이 있지만 Twitter, Google 또는 Facebook과 같은 서비스입니다. 어떤 방식 으로든 해당 서비스 중 하나를 사용하여 모든 로그인을 관리 할 수 ​​있지만 경쟁사로 보자 마자 문제가 발생합니다. 나는 그런 이야기를 들었다.

주제에 대한 몇 가지 흥미로운 읽기 :

+0

RSP ... 응답 해 주셔서 감사합니다.OAuth가 jwt를 처리합니까? 나는 기본적으로 사용자 모델을 설정하여 올바른 자격 증명으로 로그인 할 때 jwt가 설정되고 사용자가 브라우저를 더 가까이하더라도 명시 적으로 로그 아웃 할 때까지 권한이 부여됩니다. 감사. –

+0

@Tyler OAuth는 JWT를 처리하지 않습니다. JWT는 OAuth 작업 그룹의 작업 인 RFC 7519에 설명 된 JSON 웹 토큰입니다. 일부 인증 제공자는 명시 적으로 JWT를 지원합니다. Auth0 - https://auth0.com/docs/jwt를 참조하십시오. - 일부 제공 업체는 직접 지원하지 않으며 예를 들어 자신 만의 솔루션을 사용해야합니다. Apigee는 OAuth를 사용한다. https://community.apigee.com/questions/9860/support-for-jwt-token.html - 내가 쓴 서비스 중 무엇을보아야 하는가? JWT를 상자에서 꺼내지 못하도록 지원합니다. – rsp

+0

당신이 쓴 모든 서비스를 연구 할 것입니다, 감사합니다. PassportJS는 어떻습니까? 나는 언급 한 것을 보지 못했지만 오아시스에서 벗어나기 시작했습니다. 당신이 제공 한 기사들 때문에 내가이 특별한 경우에 나타납니다. –

관련 문제