inloggning?

Diskussion i 'Frågor, support och diskussion' startad av crazyrobban, 10 sept 2010.

  1. crazyrobban

    crazyrobban Adult Droid Medlem

    Blev medlem:
    10 dec 2009
    Inlägg:
    582
    Mottagna gillanden:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Är det möjligt att skriva en app med ett fält för username, ett fält för password, och skicka vidare det du skrev till en websida du vill in på?

    T.ex en app med username/password och när jag trycker på "login" så skickas det till swedroids inloggning och loggar in mig.

    Är det möjligt? :)
     
  2. nico

    nico Youth Droid Medlem

    Blev medlem:
    24 nov 2009
    Inlägg:
    157
    Mottagna gillanden:
    0

    MINA ENHETER

    Ja då, det är möjligt. Hur du gör beror lite på vad du vill ska göras efter att du loggat in. Vill du att användaren ska kunna surfa på sidan efter att ha loggats in använder du en WebView, är det bara själva inloggandet du vill åt så skickar du en vanlig POST-request med hjälp av t.ex. URLConnection.
     
  3. crazyrobban

    crazyrobban Adult Droid Medlem

    Blev medlem:
    10 dec 2009
    Inlägg:
    582
    Mottagna gillanden:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Jag är inte skillad nog för att få appen att hämta olika objekt från hemsidan ifråga. :-)

    Så detta är bara en liten kul grej så jag kan starta appen, fylla i inloggningsuppgifterna, trycka på "login" och tas till webbsidan med WebView och få username och password ifyllda eller om det är möjligt, bli inloggad med de värden jag fyllde i.

    Detta är min första app där jag har någon användarinteragering.

    Jag har uppskattat sjukt mycket om du (eller någon annan vänlig person) kunde demonstrera hur POST request fungerar.

    Jag har googlat lite grann, men noob som jag är, så förstod jag inte riktigt de tutorials jag hittat. :ehm:
     
  4. Pazzo

    Pazzo Youth Droid Medlem

    Blev medlem:
    22 dec 2009
    Inlägg:
    200
    Mottagna gillanden:
    5

    MINA ENHETER

    Såsom du vill göra blir lite svårare, eftersom du vill få browsern att skicka en post-request. Det enklaste sättet är att du genererar en lokal hemsida (/sdcard/.yourapp/redirect.htm, möjligt att browsern kan komma åt din cache också, men det tror jag inte) som du säger till browsern att gå in på, som har ett autoredirect-script för att posta en form innuti sig.
     
  5. henca

    henca Senior Droid Medlem

    Blev medlem:
    30 dec 2009
    Inlägg:
    1 337
    Mottagna gillanden:
    213

    MINA ENHETER

    Du får gärna kika på källkoden till min app "Telenor kontant", den gör precis det du frågar efter (och lite till).

    Användarnamn och lösenord sparas i appen och används för att logga in på websidan "Mina Sidor" hos Telenor.

    Saldo-information från dessa lösenords-skyddade websidor presenteras i en widget.

    Man kan ställa in programmet så att det vid klick på widget öppnar android-webläsaren färdiginloggad på "Mina Sidor".

    Källkoden finns på http://telenorkontant.sourceforge.net/

    Inloggningsförfarandet på "Mina Sidor" är lite krångligare än de flesta andra websidor som skyddas av lösenord, de håller även på och strular lite med cookies, det kommer du antagligen inte behöva i din kod, men vad du behöver beror ju på vilken sida du skall logga in på.

    m v h Henrik
     
  6. liato

    liato Adult Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    982
    Mottagna gillanden:
    361

    MINA ENHETER

    Metoden du använder fungerar väl inte med sidor som förväntar sig att inloggningsuppgifterna skickas med POST?
     
  7. nico

    nico Youth Droid Medlem

    Blev medlem:
    24 nov 2009
    Inlägg:
    157
    Mottagna gillanden:
    0

    MINA ENHETER

    Överlåter POST-requestandet åt henca, vill du göra det via en WebView så består själva principen i att man använder Javascript för att ändra på formulären. Finns ett bra exempel på principen här: http://lexandera.com/2009/01/injecting-javascript-into-a-webview/
    Vet inte riktigt hur insatt du är i hur Javascript och formulär i största allmänhet fungerar, så säg bara till om något är kryptiskt så kan säkert jag eller någon annan svara på det.

    Så kallade sessioncookies används i regel alltid vid alla typer av inloggning för att kolla så att man verkligen är inloggad, och för att dessa ska fungera krävs vanliga cookies. Med andra ord måste man i regel alltid hantera cookies om man vill kunna logga in och fortsätta vara inloggad med hjälp av POST-requests.
     
  8. henca

    henca Senior Droid Medlem

    Blev medlem:
    30 dec 2009
    Inlägg:
    1 337
    Mottagna gillanden:
    213

    MINA ENHETER

    Nej, metoden som Telenors sidor och därmed även min applikation använder är att skicka med inloggningsuppgifterna som variabler med GET.

    Vanligaste inloggningsförfarandet annars är nog varken POST eller GET med variabler på detta vis utan HTTP authentication enligt RFC 1945 eller dess efterföljare RFC 2617. Följer man dessa standards behövs inga cookies.

    Vilket inloggningsförfarande man skall välja i sin android-applikation beror naturligtvis helt och hållet på hemsidan man skall logga in på.

    m v h Henrik

    [edit]Det slår mig just att ofta funkar det med GET-anrop även till sidor som är skrivna för POST, serverns PHP-script brukar servera variablerna utan att bry sig om hur de kom. Faktum är att telenors web använder POST för att logga in på "Mina sidor". Mitt "Nej-svar" ovan var alltså felaktigt, min GET-metod kan fungera även med POST-sidor.[/edit]
     
    Last edited: 13 sept 2010
  9. niklasp

    niklasp Youth Droid Medlem

    Blev medlem:
    3 jul 2010
    Inlägg:
    229
    Mottagna gillanden:
    1

    MINA ENHETER

    Finns redan en app för detta på market, som skickar formulärdata. Använde den till östgötatrafikens busssökningar förr men kommer inte ihåg vad appen heter....
     
  10. nico

    nico Youth Droid Medlem

    Blev medlem:
    24 nov 2009
    Inlägg:
    157
    Mottagna gillanden:
    0

    MINA ENHETER

    Att det då inte behövs cookiehantering stämmer. Dock syftade jag på sådana sidor som TS exemplifierade, t.ex. Swedroid. Har aldrig varit med om att till exempel ett forum har använt sig av HTTP auths, även om det kanske förekommer ibland på mindre, interna sidor.

    Sedan PHP 4.2.0 är register_globals, som krävs för att detta ska fungera, avstängt som standard och inställningen är markerad som deprecated. Med andra ord ska det inte fungera om de som gjort sidan vet vad de håller på med, men det kan mycket riktigt fungera och det skadar ju inte att testa... :)
     
  11. crazyrobban

    crazyrobban Adult Droid Medlem

    Blev medlem:
    10 dec 2009
    Inlägg:
    582
    Mottagna gillanden:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Nu fanns det mycket att läsa!

    Ska gå igenom rubbet, och tack, Henca, jag ska kolla din kod! :)

    Sidan ifråga är en https, hoppas inte det sätter käppar i hjulet för mig..
     
  12. henca

    henca Senior Droid Medlem

    Blev medlem:
    30 dec 2009
    Inlägg:
    1 337
    Mottagna gillanden:
    213

    MINA ENHETER

    Den fil som innehåller det som du är intresserad av är TelenorWeb.java, du kan se den på http://telenorkontant.cvs.sourcefor...tant/TelenorWeb.java?revision=1.8&view=markup

    Läs, inspireras och ta gärna lärdom av koden! Om du kan tänka dig att släppa ditt program med någon gpl-kompatibel licens är du även fri att kopiera kod-stycken rakt av.


    Det ställer inte till någonting, även Telenor använder https.

    m v h Henrik