【问题标题】:How to pass JWT token from one activity to another?如何将 JWT 令牌从一个活动传递到另一个活动?
【发布时间】:2017-12-11 15:55:00
【问题描述】:

我在 MainActivity 中有以下 onCreate 类,并被证明能够与我的服务器一起使用。它能够提取出 JWT 令牌

    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 令牌添加到下一个 SiteActivity 的授权不记名 Header 中的方法。任何建议如何使这项工作?我应该将令牌直接传递给下一个活动还是应该使用单例?谢谢!

【问题讨论】:

  • 这不是我们这一代提出请求的方式;)使用改造:square.github.io/retrofit它解决了你所有的问题
  • @itzhar 你会怎么做?我看到文档没有使用 JWT 的示例
  • 在一些@Header 中传递 JWT

标签: android kotlin jwt


【解决方案1】:

直接回答问题

使用putExtra("token", token)将数据放入Intent。

用 getIntent().getStringExtra("token") 把它放在另一边。

但是……

您可能希望永久保存令牌。例如,进入 SharedPreferences。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2011-10-27
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多