2017-10-25 5 views
0

JWT를 사용하여 내 애플리케이션의 서버 인증을 관리하고 있습니다. 나는 그것을 서버에서 관리한다. 내 각도 애플 리케이션에서 나는 012w을 관리하는 데 angular-jwt을 사용하고 있습니다. 만료 된 경우 새로 고침 토큰 API를 호출하는 방법 API 호출에 발리 슛을 사용하고 있습니다. 토큰이 만료되면 서버는 401 오류 코드로 응답합니다. 그 시간은 새로 고침 토큰 API를 호출해야합니다. 새로 고침 호출 후 사용자 입력없이 이전 API 호출을 다시 호출해야합니다.android 앱에서 토큰 인증을 관리하는 방법

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest 
       (method, request_url, null, new Response.Listener<JSONObject>() { 

        @Override 
        public void onResponse(JSONObject response) { 

         try { 
          if (response.getInt("status") == 1) { 
           callback.onSuccessResponse(response.get("data")); 
          } else { 
           callback.onSuccessResponse(new JSONArray()); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, new Response.ErrorListener() { 

        @Override 
        public void onErrorResponse(VolleyError error) { 

         NetworkResponse networkResponse = error.networkResponse; 
         if (networkResponse != null && networkResponse.statusCode == 401) { 

         } 

        } 
       }) { 

      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> headers = new HashMap<String, String>(); 
       String token = AppPreferencesHelper.getAccessToken(context); 
       headers.put("Authorization", "Bearer " + token); 
       return headers; 
      } 
     }; 

     Volley.newRequestQueue(context).add(jsonObjectRequest); 

답변

0

토큰 유효성을 검사하려면 api를 호출해야합니다. 유효 기간이 만료되면 new를 생성 할 수 있습니다.

또는 로그인 기능이있는 경우 로그인시 JWT를 확인하고 오래된 만료 된 경우 새로 생성 할 수 있습니다.

나는 아주 기본적인 방법으로 내 응용 프로그램에서 사용자마다 고유 한 전자 메일 주소를 사용하여 JWT를 만들고이를 서버의 데이터베이스에 저장하므로 만료되지 않습니다. 사용자가 로그 아웃 할 때마다 JWT가 제거되고 다시 로그인하면 새 토큰이 생성됩니다.