Ionic/Cordova 앱 인증
우선, 난 프로가 아니야.
더 나은 개발자가 되기 위해 저는 무엇이 필요한지, 그리고 Ionic-Framework 앱에 대한 가입/로그인을 어떻게 해야 하는지 이해하려고 합니다.
대부분의 Single-Page-Applications(SPA; 싱글페이지 애플리케이션)는 클라이언트용 HTML을 제공하는 노드서버에서의 인증을 처리합니다.제 경우 전화 자체가 HTML을 사용할 수 있기 때문에 COR에 문제가 있을 수 있습니다.
Ionic-Framework는 상태를 사용하고 있으며, angular-client-side-auth repo를 기반으로 하고 있으므로 앱에서 상태를 변경할 때마다 인증을 받아야 합니다.
초기 앱 설정이 되어 있습니다만, 지금 어떻게 하면 좋을지 혼란스럽습니다.
사용 가능한 도구:
- Node.JS Server - Thanks Digital Ocean (DB 프록시로 사용해야 합니까?)
- CouchDB 서버(풀스택)
질문:
- 하이브리드 애플리케이션을 사용할 때 인증을 위한 표준 접근 방식은 무엇입니까?
- 노드를 사용해야 합니까?데이터베이스 프록시로서 JS를 사용하시겠습니까?
- node.js를 건너뛰고 CouchDB 서버에서 직접 인증해야 합니까? (이것도 들은 적이 있습니다)
- 제가 이 일을 잘못하고 있는 건가요?
- 잠재적인 장애물은 무엇입니까?
- 하이브리드 애플리케이션에서는 CORS가 어떻게 작동합니까?
- 내가 뭘 놓친거야?
더 나은 개발자가 될 수 있도록 도와주셔서 감사합니다.
nathvarun은 매우 완전한 답변을 주었지만, 제 앱에서 인증 절차를 공유하고 싶습니다.
- 보내세요
email
+password
서버로의 Ajax 경유 - 를 생성하다
token
서버에 저장하여 앱으로 되돌립니다. - 가게
email
+token
에localStorage
- 서버에 송신하는 모든 요구에 대해서
email
+token
경유로POST
- 서버에서 해당 토큰을 사용하여 해당 사용자의 신뢰성을 확인합니다.
true
메서드가 실행됩니다.false
앱에 에러(401)를 재발송합니다. - 앱이 성공했을 경우는 괜찮습니다.에러가 발생했을 경우는 로그인 화면으로 리다이렉트 합니다.
좋은 점은 앱이 열렸을 때,email
+token
부터localStorage
이 토큰이 해당 사용자에게 정상일 경우 서버로 전송하고 그렇지 않을 경우 로그인으로 수정합니다.사용자가 앱의 캐시를 지울 때마다 로그인 화면으로 리디렉션됩니다.
사실 지금 작업 중인 앱 몇 개 때문에 그런 게 필요했어요.나는 꽤 오랜 시간을 들여 이것을 조사했고 그것을 달성할 수 있었다.
결과에 매우 만족하고 있습니다.이메일/비밀번호 인증 외에 동일하게 동작하는 소셜 인증도 추가했습니다.
- 클라이언트측에서 로그인하기 위한 프로바이더의 URL(sublic/sublic/sublic)을 사용하여 url을 엽니다.
- 사용자가 로그인하여 서버의 콜백 URL로 리다이렉트됩니다(서버는 nodejs로 작성됩니다).
- 접속 토큰을 제공자로부터 얻으면요.이 토큰을 저장한 후 사용자가 보호된 자원 소스에 액세스할 때마다 클라이언트가 재사용할 토큰을 만듭니다.
apk를 다운로드하여 테스트합니다.
원하는 경우 클라이언트 측 코드를 모두 https://github.com/malikov/Authenticate.me-client-cordova-ionic 에서 확인할 수 있습니다.
서버측 코드(https://github.com/malikov/Authenticate.me-Node-Server)는 다음과 같습니다.
언급URL : https://stackoverflow.com/questions/22165024/authentication-in-ionic-cordova-app
'programing' 카테고리의 다른 글
Spring Boot 애플리케이션에서 Flyway를 사용한 여러 데이터 소스 이행 (0) | 2023.03.27 |
---|---|
Angular UI 부트스트랩에서 모달 폭을 늘리려면 어떻게 해야 합니까? (0) | 2023.03.27 |
표시되는 값을 변경하려면 ng-options에 필터를 사용합니다. (0) | 2023.03.22 |
Google 클라우드 플랫폼의 Wordpress permalink가 작동하지 않습니다. (0) | 2023.03.22 |
기능하는 setState를 사용하는 경우 (0) | 2023.03.22 |