【发布时间】:2021-07-13 16:23:04
【问题描述】:
大家晚上好!我想使用共享首选项来存储我的令牌(我知道这不安全,我是 android 开发的新手,只是想尝试一下),然后将其传递给拦截器。如何在那里初始化共享首选项?谢谢!或者你能给我一个提示我如何实现拦截器或存储令牌。
抱歉,我已经尝试搜索过该主题,无法实现其他开发者的方法。
object NetworkModule {
var sharedPreferences = //GET SHARED PREFERENCES THERE
var authToken: String? = sharedPreferences.getString("Token", null)
val baseURL = //my base url
val loggingInterceptor = HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BODY
}
var httpClient = OkHttpClient.Builder().addInterceptor { chain ->
chain.proceed(
chain.request().newBuilder().also { it.addHeader("Authorization", "Bearer $authToken") }
.build()
)
}.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.addNetworkInterceptor(loggingInterceptor)
.build()
val retrofit = Retrofit.Builder().baseUrl(baseURL).addConverterFactory(
GsonConverterFactory.create()
).client(httpClient).build()
val api: API by lazy { retrofit.create() }
val apiClient = ApiClient(api)
}
【问题讨论】:
标签: android kotlin sharedpreferences android-context