L'authentification dans Ionique/Cordova App
Tout d'abord, je ne suis pas un pro.
Dans ma quête pour devenir un meilleur développeur, j'essaie de comprendre ce qui est nécessaire et comment accomplir la création d'un inscrivez-vous/connectez-vous pour Ionique-Cadre d'application.
Plus de la simple-page-applications (SPAs) gérer l'authentification sur un serveur de nœud qui est aussi le code HTML pour le client. Dans mon cas, le téléphone lui-même sera de servir le HTML donc je suppose que j'ai peut-être monter à l'encontre de certaines catégories de documents questions.
Je comprends que les Ionique-Cadre utilise les états qui s'appuie angulaires-client-side-auth repo je devrais être authentifier à chaque fois que je suis l'évolution des états dans mon application.
J'ai une première configuration de l'application, mais maintenant, je suis un peu confus où aller à partir d'ici.
Les outils que j'ai à ma disposition:
- Node.JS Serveur Grâce DigitalOcean (dois-je utiliser cela comme un proxy de ma DB?)
- Serveur CouchDB (Full stack, nous arrivons ici)
Questions de la mine:
- Qu'est-ce que l'approche standard pour l'authentification lors de l'utilisation d'applications hybrides?
- Dois-je utiliser Node.JS en tant que proxy pour la base de données?
- Dois-je sauter node.js et s'authentifier directement avec le serveur CouchDB? (J'ai entendu parler de cela)
- Vais-je à propos de tout cela dans le mauvais sens?
- Quelles sont mes possibilités de la route des blocs?
- Comment la SCRO travailler avec des applications hybrides?
- Rien de ce que je suis absent?
Merci de m'aider à devenir un meilleur développeur.
Vous devez vous connecter pour publier un commentaire.
OK, il y a beaucoup à répondre. Mais la réponse courte est de
il suffit de garder les choses simples et authentifier comme vous le feriez pour une web app.
Dans une application web :
Dans une application mobile :
Qu'est-ce que l'approche standard ?
Dois-je utiliser Node.JS en tant que proxy pour la databse?
Vais-je à propos de tout cela dans le mauvais sens?
Quelles sont mes possibilités de la route des blocs?
Comment la SCRO travailler avec des applications hybrides?
Rien de ce que je suis absent?
IonicFramework est juste un front-end HTML5 cadre. Il ne peut à elle seule faire de vous une application mobile.Il va juste vous donner belle INTERFACE utilisateur de travailler avec. IonicFramework vous offre quelques belles les fonctions javascript qu'il met en oeuvre à l'aide angulaire. Ainsi, pour obtenir les la plupart hors de ionique, vous devez être compétent avec angularJs. L'apprentissage angulaire en vaut la peine, alors allez-y.
L'application est compilée par Cordova. Cordova prend votre html/css/javascript, des fichiers et des paquets de mer
dans le fichier apk android ou iphone ipa de sorte qu'ils peuvent être installés sur
l'os respectifs comme des applications natives.
Cordova est ce qui va vous permettre d'avoir accès natif fonctionnalités du téléphone comme l'appareil photo,la galerie,les contacts
etc.
Mis à jour le 3 juin 2015
Jeton D'Authentification Basée Sur Les : je crois que c'est une alternative. Il est plus propre et plus sûr moyen de la gestion de l'authentification qui est maintenant facilement disponibles.
Pour plus d'informations, consultez les liens suivants:
Quels sont les avantages de l'utilisation d'une base de jeton d'approche?
De la croix-de-domaine /de la SCRO: cookies + CORS ne pas bien jouer dans différents domaines. Une base de jeton d'approche vous permet de faire des appels AJAX pour n'importe quel serveur sur n'importe quel domaine, parce que vous utilisez un en-tête HTTP pour transmettre les informations de l'utilisateur.
Apatrides (un.k.un. Côté serveur évolutivité): il n'y a pas besoin de tenir une session de magasin, la marque est une auto-contanined entité qui transmet toutes les informations de l'utilisateur. Le reste de l'état vit dans des cookies ou des locaux de stockage sur le côté client.
CA: vous pouvez vous servir de tous les actifs de votre application à partir d'un CDN (par exemple, javascript, HTML, images, etc.), et de votre côté serveur est juste l'API.
Découplage: vous n'êtes pas lié à un schéma d'authentification. Le jeton peut être généré n'importe où, par conséquent, votre API peut être appelée à partir de n'importe où avec un simple moyen d'authentification de ces appels.
Mobile prêt: quand vous commencez à travailler sur une plate-forme native (iOS, Android, Windows 8, etc.) les cookies ne sont pas idéales lors de la consommation d'une sécurité de l'API (vous avez à traiter avec cookie conteneurs). L'adoption d'un jeton de base de cette approche simplifie beaucoup de choses.
CSRF: puisque vous n'êtes pas en s'appuyant sur les cookies, vous n'avez pas besoin de les protéger contre les demandes de site (par exemple, il ne serait pas possible sur votre site, générer une requête POST et de ré-utiliser le cookie d'authentification, car il n'y en aura).
Performance: nous ne sommes pas présenter tout dur perf repères ici, mais un aller-retour réseau (p. ex. la recherche d'une séance sur la base de données) est susceptible de prendre plus de temps que le calcul d'un HMACSHA256 pour valider un jeton et l'analyse de son contenu.
Page de connexion n'est pas un cas particulier: Si vous utilisez Rapporteur pour écrire des tests fonctionnels, vous n'avez pas besoin de gérer tout cas spécial pour la connexion.
Standard-base: votre API pourrait accepte une norme JSON Web Jeton (JWT). C'est un standard et il y a plusieurs backend bibliothèques (.NET, Ruby, Java, Python, PHP) et des entreprises en soutenant leur infrastructure (par exemple, Firebase, Google, Microsoft). Comme un exemple, Firebase permet à leurs clients d'utiliser tout mécanisme d'authentification, aussi longtemps que vous générez un JWT avec certains pré-défini les propriétés, et a signé avec le secret partagé à l'appel de leur API.
nathvarun a donné une réponse complète, mais j'aimerais partager avec vous les étapes que j'ai faites pour l'authentification dans mon application.
email
+password
via ajax vers le serveurtoken
dans le serveur et de le renvoyer à l'applicationemail
+token
danslocalStorage
email
+token
viaPOST
true
la méthode est exécutée, sifalse
je le renvoyer à l'application un message d'erreur (401)Belle chose, c'est que lorsque l'application est ouverte, vous pouvez obtenir le
email
+token
delocalStorage
, envoyer au serveur, si ce jeton est ok pour que l'utilisateur, de rediriger à l'écran principal, sinon redirection de connexion. Alors à chaque fois que l'utilisateur efface le cache de l'application, il est redirigé vers l'écran de connexion.J'ai en fait besoin de quelque chose comme ça pour quelques applications que je suis en train de travailler sur. J'ai passé assez de temps à l'examen et qu'elle était en mesure d'atteindre cet objectif.
Je suis assez content du résultat, en plus de e-mail/mot de passe d'authentification j'ai ajouté quelques authentification sociale qui fonctionne de la même manière.
Télécharger le apk et de le tester.
Si c'est ce que vous cherchez, vous pouvez payer à la fois le côté client code : https://github.com/malikov/Authenticate.me-client-cordova-ionic
Et le côté serveur de code à : https://github.com/malikov/Authenticate.me-Node-Server