我有一个 Android 应用程序,我正在从基本身份验证切换到 JWT,这样一来,我就不必在本地存储用户的密码了。这对于我的所有 API 请求都很有效,但我的应用程序的一部分使用 WebView
来显示托管在我的服务器上的自定义内容。此内容还需要身份验证,目前我在 WebViewClient
类中使用用户名/密码组合来提供凭据。现在我要使用 JWT,我不再拥有这些凭据,只有 token 。有没有办法为 WebViewClient
提供替代身份验证?我的代码是 Kotlin,但同样的原理也适用于 Java。
inner class WVClient : WebViewClient() {
override fun onReceivedHttpAuthRequest(view: WebView, handler: HttpAuthHandler, host: String, realm: String) {
// WHAT DO I DO HERE INSTEAD?
handler.proceed(username, password)
}
}
最佳答案
每dewey's关于我的问题的评论,我考虑将身份验证 header 添加到请求中,而不是等待网站提出身份验证请求。我只是在初始加载 URL 时将 header 添加到“附加 HTTP header ”可选参数中,而不是依赖 WebViewClient 的方法来拦截请求。
webView.loadUrl("https://...", mapOf("Authorization" to jwtToken))
关于java - Android WebView - JWT 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48588918/