마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

로그인 후 세션유지에 관련하여 질문입니다.

0 추천
 void login(){
        try{            
              
            httpclient=new DefaultHttpClient();
            httppost= new HttpPost("http://yjbphi.esy.es/login.php"); 
            //add your data
            nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("username",et.getText().toString().trim()));  // $Edittext_value = $_POST['Edittext_value'];
            nameValuePairs.add(new BasicNameValuePair("password",pass.getText().toString().trim())); 
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            //Execute HTTP Post Request
            response=httpclient.execute(httppost);
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            final String response = httpclient.execute(httppost, responseHandler);
            String res = response.toString();
            res= res.replaceAll("\\s+","");
            System.out.println("Response : " + res); 
             
            runOnUiThread(new Runnable() {
                public void run() {
                    tv.setText("Response from PHP : " + response);
                    dialog.dismiss();
                }
            });
            
            if(res.equalsIgnoreCase("Success")){
                runOnUiThread(new Runnable() {
                    public void run() {
                        Toast.makeText(LoginActivity.this,"Login Success", Toast.LENGTH_SHORT).show();
                    }
                });
                
                startActivity(new Intent(LoginActivity.this, MainActivity.class));
               
                
                LoginActivity.this.finish();
                
            }else{
                showAlert();
             
            }
             
        }catch(Exception e){
            dialog.dismiss();
            System.out.println("Exception : " + e.getMessage());

안녕하세요 안드로이드 개발공부를 하고 있는 학생입니다.

이번에 앱개발을 하면서 도저히 이해가 안되는 부분이 있어서 질문드립니다.

제가 공부하고 있는 것은 로그인세션유지의 관련된 부분인데요.

httpclient를 이용한 서버와의 통신을 활용해 로그인을 한부분까지는 성공했습니다. 그 이후에 로그인 세션을 유지하여

게시판을 이용하는데, 로그인 후 리스트형식의 게시판에서 글쓰기와, 글검색, 글삭제등 기능이 있어야합니다.

자신만의 글을 확인할 수 있어야하고, 자신의 쓴 글만 지울수있어야 하는 기능등을 구현하려고 합니다. 찾아보니 로그인 세션을 유지해서 하면 할수 있다고하는데 어떻게 해야 할지 막막합니다. httpclient는 자동으로 세션을 유지할수있게 해준다는데 어떤식으로 활용해야할지 잘 모르겠습니다. 도와주세요

소스는 제가 httpclient를 활용해 만들어본 로그인 함수입니다. 이소스도 잘못됫다면 고칠점이 어딘지 알려주세요!

힘내용 (120 포인트) 님이 2013년 12월 16일 질문

1개의 답변

0 추천
다른 방법도 있겠지만.. 대개 이방법을 사용하는 것으로 알고 있습니다.

로그인하면 앱용으로 세션값과 생성일시를 DB에 저장합니다. 보통 signature라고 부르더군요.

SIG는 일정시간동안만 유효한 쿠키와 같습니다.

이 SIG를 앱으로 받아와서 Preference에 저장해둡니다.

서버에 요청할때 userid 와 SIG를  함께 보내서  확인합니다.

서버요청하는 URL이 노출되어도 userid 와 SIG로 접근제어를 할수 있습니다.

유효기간은 개발자가 임의로 정하면 됩니다.
Alex77 (260 포인트) 님이 2014년 5월 23일 답변
...