Authentifizierung in jQuery Mobile und PhoneGap

Ich habe eine web-Anwendung mit jQuery Mobile und PHP (CodeIgniter framework). Jetzt bin ich versucht zu machen, eine PhoneGap-version von es als gut, um es verteilbar als standalone-app. Jedoch, die PHP-web-app. version nutzt Ionen-Auth, eine CodeIgniter-plugin für die Authentifizierung. Also, wenn Sie gehen zu einer Seite, die eine Authentifizierung erfordert, wird die app leitet Sie an den controller Authentifizierung login-Methode. Und nach der Authentifizierung leitet es Sie zurück auf die Startseite (die jQuery-Mobile-Seite in diesem Fall). Dies funktioniert gut in der web-app., da die home-Seite geöffnet ist die home-Controllers in den ersten Platz sowieso.

Aber hier ist der Haken: in der PhoneGap-version, der "home" Seite zu sein, muss index.html Datei PhoneGap. Anscheinend kann man laden einer anderen url auf Start, indem ein Wert in PhoneGap.plist, aber das ist nicht in Ordnung von apple für das Einreichen von app store. Und wenn ich eine Umleitung in der Authentifizierung, die ich nicht bekommen kann zurück zu den index.html Datei nach der Authentifizierung...

So, wie sollte man die Authentifizierung in einer PhoneGap/jQuery Mobile app?

UPDATE:

Habe ich versucht, diese nach einem von den Antworten, aber die app noch versucht, navigieren Sie zu dem Konto - /login-Seite (welche nicht existiert), wenn ich nur wollen, melden Sie sich über die post und einen Wert zurückgeben von der Methode:

    $('#login_form').bind('submit', function () {
        event.preventDefault();
        //send a post request to your web-service
        $.post('http://localhost/app_xcode/account/login', $(this).serialize(), function (response) {
            //parse the response string into an object
            var response = response;
            //check if the authorization was successful or not
            if (response == true) {
                $.mobile.changePage('#toc', "slide");
            } else {
                alert('login failed');
                $.mobile.changePage('#toc', "slide");
            }
        });
    });

Hier ist die controller-Methode:

function login()
    {
        //validate form input
        $this->form_validation->set_rules('identity', 'Identity', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        $base_url = $this->config->item('base_url');

        $mobile = $this->detect_mobile();
        if ($mobile === false && $base_url != 'http://localhost/app_xcode/') //Only restrict if not developing
            redirect('account/notAMobile');

        else if ($this->form_validation->run() == true) { //check to see if the user is logging in
            //check for "remember me"
            $remember = (bool)$this->input->post('remember');

            if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember)) { //if the login is successful
                //redirect them back to the home page
                $this->session->set_flashdata('message', $this->ion_auth->messages());

                echo true;
                /*redirect($this->config->item('base_url'), 'refresh');*/
            }
            else
            { //if the login was un-successful
                //redirect them back to the login page
                $this->session->set_flashdata('message', $this->ion_auth->errors());
                /*redirect('account/login', 'refresh');*/ //use redirects instead of loading views for compatibility with MY_Controller libraries
            }
        }
        else
        { //the user is not logging in so display the login page
            //set the flash data error message if there is one
            $this->data['message'] = (validation_errors()) ? validation_errors()
                    : $this->session->flashdata('message');

            $this->data['identity'] = array('name' => 'identity',
                                            'id' => 'identity',
                                            'type' => 'text',
                                            'value' => $this->form_validation->set_value('identity'),
            );
            $this->data['password'] = array('name' => 'password',
                                            'id' => 'password',
                                            'type' => 'password',
            );

        }
    }

Ich glaube, ich habe entfernt oder auskommentiert alle Weiterleitungen, die dort waren. Also ich weiß nicht, warum es versucht zu laden, die anzeigen noch? Hat es etwas zu tun mit jQuery Mobile versuchen, zu navigieren, gibt es da poste ich zu dieser url?

InformationsquelleAutor Anders | 2011-11-10

Schreibe einen Kommentar