android - 如何将 JWT token 从一个 Activity 传递到另一个 Activity ?

标签 android kotlin jwt

我在 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/

相关文章:

android - 回收者 View 不会使用实时数据自动更新

javascript - Jest 模拟函数返回未定义而不是对象

Android EditText 首选项验证

android - ImmutableMap 在通过 Intent 时变成了 HashMap

android - React-native - npm-start 不工作 - 地铁出错 - events.js :183 throw er

android - 通缉 : TableLayout-Like ListView

gradle - 为什么更新 Gradle 到 3.1.0 后显示 "3rd-party Gradle plug-ins may be the cause"?

android - Android checkSelfPermission()中的 "this"指的是什么?

android - 如何处理原生应用中的 JWT 过期机制

jwt - 未定义身份验证保护驱动程序 [api]。流明,野狗,JWTAuth