我在 MainActivity 中有以下 onCreate 类,并证明能够与我的服务器一起工作。它能够提取出 JWT token
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()
})
}
不幸的是,我还没有想出一种方法来将 JWT token 添加到下一个 SiteActivity 的授权承载 header 中。任何建议如何使这项工作?我应该将 token 直接传递给下一个 Activity 还是应该使用单例?谢谢!
最佳答案
直接回答问题
使用 putExtra("token", token) 将数据放入 Intent 中.
用 getIntent() 把它放在另一边。 getStringExtra("token") .
但是...
您可能希望永久保存 token 。例如,进入 SharedPreferences。
关于android - 如何将 JWT token 从一个 Activity 传递到另一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47738202/