Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 979 Bytes

OAUTH.md

File metadata and controls

37 lines (27 loc) · 979 Bytes

Oauth授权管理

  • 通过OkHttp的拦截器实现的Oauth授权管理工具
  • 可添加其它头信息到每个请求当中
  • 可以服务端返回401时,尝试重新获取token并重试请求

使用方法

  • 实现OauthProvider接口
  • 创建OauthInterceptor实例并添加到OkHttp
//1.使用object单例实现OauthProvider接口
object AuthManagement : OauthProvider

    /** 登录成功后,把权限Token保存到此处 */
    override val accessToken: String? = null

    /** 其它要添加的请求头均添加到此处 */
    override val headers = mutableMapOf()

    override fun refreshToken(): String? {
        TODO("获取新的TOKEN,并作为返回值返回")
    }

}

//2.创建OAuthClientInterceptor的实例
val oauthClientInterceptor = OAuthClientInterceptor(AuthManagement)

//3.添加到OkHttp中
val okHttpClient = OkHttpClient.Builder()
    ...
    .addInterceptor(oauthClientInterceptor)
    ...
    .build()