If you use the REST service and want to keep the JWT, the best way is SharedPreferences . You must save in PrivateMode for security.
SharedPreference and SharedPreference.Editor used to store and retrieve JWT. JWT retrieved after POST request username and password
private void makeJsonRequest() { String json_req = "json_req"; // String url = getContext().getString(R.string.LOGIN_URL); String url=""; final JSONObject obj=new JSONObject(); try{ obj.put("username",name); obj.put("password",pass); }catch (JSONException e) { e.printStackTrace(); } JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST, url, obj, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); return headers; } }; AppController.getInstance().addToRequestQueue(req, json_req);
To get the JWT from the answer and keep using shared preferences
SharedPreferences prefs; SharedPreferences.Editor edit; prefs=getActivity().getSharedPreferences("myPrefs",Context.MODE_PRIVATE); edit=prefs.edit(); try { String saveToken=response.getString("token"); edit.putString("token",saveToken); Log.i("Login",saveToken); edit.commit(); } catch (JSONException e) { e.printStackTrace(); }
Get token from SharedPreference
private void getToken() { prefs=this.getActivity().getSharedPreferences("myPrefs",Context.MODE_PRIVATE); token = prefs.getString("token",""); }
source share