2017-12-10 3 views
1

Ich habe die folgende OnCreate-Klasse in MainActivity und nachweislich in der Lage, mit meinem Server zu arbeiten. Es ist in der Lage, die JWT TokenWie übergebe ich das JWT-Token von einer Aktivität zur anderen?

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 
    setSupportActionBar(toolbar) 
    submitButton = findViewById<Button>(R.id.btn_submit) 

    // Volley code is here 
    val url = "http://192.168.1.8:4000" 

    submitButton.setOnClickListener({ 
     val pinCode = pin_code.text.toString() 
     queue = Volley.newRequestQueue(this) 
     val params = HashMap<String, String>() 
     params.put("pin_code", pinCode) 
     val request = object : JsonObjectRequest(Request.Method.POST, url + "/api/employees/token", JSONObject(params), 
       Response.Listener<JSONObject> { response -> 
        val token = response 
          .getJSONObject("data") 
          .getString("token") 

        val myIntent = Intent(this, SiteActivity::class.java) 
        startActivityForResult(myIntent, 0) 
       }, 
       Response.ErrorListener { 
        Toast.makeText(this, "That didn't work!", Toast.LENGTH_SHORT).show() 
       }){ 
      @Throws(AuthFailureError::class) 
      override fun getHeaders(): MutableMap<String, String> { 
       val headers = HashMap<String, String>() 
       headers.put("Accept", "application/json") 
       headers.put("Content-Type", "application/json; charset=utf-8") 
       return headers 
      } 
     } 
     queue.add(request) 
     queue.start() 
    }) 
} 

Leider ist der JWT-Token in den autorisierten Inhaber-Header für die nächste SiteActivity hinzufügen Ich habe zu extrahieren nicht einen Weg herausgefunden. Irgendwelche Vorschläge, wie das funktioniert? Soll ich das Token direkt an die nächste Aktivität weitergeben oder sollte ich ein Singleton verwenden? Vielen Dank!

+0

das ist nicht die art, eine anforderung in unserer generation zu stellen;) nachrüstung verwenden: http://square.github.io/retrofit/ es löste alle sie probleme – itzhar

+0

@itzhar wie würdest du es tun? Ich sehe die Dokumentation es gibt keine Beispiele für die Verwendung von JWT –

+0

Führen Sie die JWT in einigen @Header – itzhar

Antwort

1

straightly Frage mit putExtra("token", token)

Put Daten in Intent beantworten.

Nehmen Sie es auf der anderen Seite mit getIntent(). getStringExtra("token").

Aber ...

Sie können Token persistent speichern möchten. Zum Beispiel in SharedPreferences.

Verwandte Themen