iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Advies over aanmaken gebruikersaccounts op backend (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/96726-advies-over-aanmaken-gebruikersaccounts-op-backend.html)

Empire 04-08-11 02:50

Advies over aanmaken gebruikersaccounts op backend
 
Goede avond, wat zeg ik? Nacht alweer,

Momenteel ben ik druk in de weer om een ipad/iphone app te programmeren. Een van de zaken die erg belangrijk is voor mijn app is de mogelijkheid voor gebruikers om een eigen account aan te kunnen maken via de app voor personalisatie van informatie.

Nu heb ik uit de documentatie van apple al de nodige informatie gevonden over de UDID, een string waarmee het mogelijk is om 1 apple device uniek te kunnen identificeren, wat tevens sim-onafhankelijk is. Daarnaast lees ik ook dat Apple liever niet heeft dat apps de UDID direct gebruiken en in een database backend zetten ivm gebruikers-privacy. Met deze kennis in mijn achterhoofd wil ik een goede manier vinden om gebruikers uniek te kunnen identificeren op verantwoorde wijze zodat ik account gebonden informatie kan leveren.

Wat ik graag wil weten is:
- Kan en mag ik de UDID gebruiken, in combinatie met het 06-nummer in de vorm van een MD5 hash ter identificatie van een gebruiker op mijn backend?

- Zijn er meer unieke identifiers die ik kan gebruiken om gebruikers te identificeren?

- Heeft een data-simkaart van een IPAD een 06-nummer of een ander uniek kenmerk dat ik mag en kan gebruiken ter identificatie?

De combinatie van het 06-nummer met UDID lijkt mij handig om te voorkomen dat accounts nog steeds werken als een iphone/ipad een nieuwe eigenaar heeft.
Zo, nu tijd om te slapen!

--Kleine edit--
Ik wil de registratie laagdrempelig houden, daarom werk ik liever niet met usernames en passwords als er misschien andere mogelijkheden zijn.
--end edit---
Groet en afwachtende op reacties,

Empire.

eof

Hollance 04-08-11 13:16

In principe kan wat je zegt, maar het is niet ideaal. Je kunt het 06 nummer uit de NSUserDefaults halen, maar je hebt geen garantie dat de gebruiker zijn telefoonnummer daadwerkelijk ingevuld heeft. Voor zover ik weet kun je het 06 nummer niet op een andere manier achterhalen.

Whacko 04-08-11 14:32

Daarnaast als de gebruiker van provider wisselt, en een nieuw nummer krijgt, dan wordt je hash anders, en is de gebruiker niet meer te herkennen. Dat zou je kunnen oplossen door het oude nummer te onthouden in de app, maar als de gebruiker de app opnieuw installeert, dan is de koppeling ook weg.

Mijn advies:
De gebruiker moet bij de eerste keer opstarten een gebruikersnaam en wachtwoord opgeven.
Hiermee maak jij een account aan.
Met de username en UDID maak je een hash, welke je gebruikt bij de communicatie.
Als de gebruiker nu een nieuwe iphone krijgt, of de app opnieuw installeert kan hij gewoon inloggen met gebruikersnaam en wachtwoord.

Empire 04-08-11 16:25

Oke, bedankt voor de goede tips. Een vraag die rest: Als ik zou kiezen voor de traditionele username/password methode, is dan het gebruik van de UDID niet overbodig?

Whacko 04-08-11 17:35

Ja eigenlijk wel. Kijk je kunt ook een hash maken die alleen van de UDID afhankelijk is, dan hoef je niet te registreren. Nadeel daarvan is, dat de gebruiker niet bij zijn gegevens kan als hij een nieuwe iPhone krijgt. Daarom is het vragen om iets meer info, bijvoorbeeld alleen een emailadres, handig zodat je altijd nog de gegevens kunt terughalen.

Empire 05-08-11 13:16

Bedankt voor het advies :) Ik ga binnenkort aan de slag met mijn backend. Omdat ik dit op een rap tempo online wil hebben ben ik van plan om een combinatie te gebruiken van:
-python op een Debian host. (Geen vhost, maar echt ijzer)
-communicatie via port 80 (post en/of get)
- apache met python plugin
-JSON voor het communicatie tussen de app en de dedicated host. Na wat googlen zag ik dat JSON een stuk minder data intensief is dan XML.

security
- ssl
- compiled accesskey ter bescherming van API (tip op slideshare.com)
- Uiteraard user authenticatie

Is dit een 'normale' setup voor apps <==> backend communicatie? Als ik nog wat buzzwords mis hoor ik het graag. Zelf heb ik nog geen ervaring met het maken van een Apps-backend, al ben ik wel bekend met bovenstaande technieken.

Nogmaal bedankt voor het advies.


Alle tijden zijn GMT +2. Het is nu 16:56.