Skip to content

apiHeader not updated after login #26

@athasamid

Description

@athasamid

Hi, I am using your architecture
I got some error when user success login, I save the token from response and use it as header
I've already save it to preference but the apiHeaders.token not updated it and still null

Here my login presenter
`override fun doLogin(nrp: String, password: String) {
interactor?.let {
compositeDisposable.add(
it.doLogin(LoginRequest.ServerLoginRequest(username = nrp, password = password))
.compose(schedulerProvider.ioToMainObservableScheduler())
.subscribe({res ->
getView()?.let {v ->
v.loginSuccess()
}

                    interactor?.setToken("${res.tokenType} ${res.accessToken}").let {
                        loadUserInfo()
                    }

                }, {err ->
                    val anError = err as ANError
                    if (anError.errorCode == 401) {
                        getView()?.loginFailure("NRP atau password tidak sesuai")
                    }
                })
        )
    }
}

override fun loadUserInfo() {
    interactor?.let {
        compositeDisposable.add(
            it.loadUser()
                .compose(schedulerProvider.ioToMainObservableScheduler())
                .subscribe ({d ->
                    interactor?.setUserInfo(d.data)
                    getView()?.userInfoSuccess()
                }, {err ->

                })
        )
    }
}`

LoginInteractor
`override fun doLogin(request: LoginRequest.ServerLoginRequest): Observable = apiHelper.performServerLogin(request)

override fun loadUser(): Observable<DataUserResponse> = apiHelper.performInfoUser()

override fun sendToken(request: LoginRequest.UpdateFcmRequest): Observable<DefaultResponse> = apiHelper.performUpdateFcm(request)

override fun setToken(token: String) {
    preferenceHelper.setToken(token)
}`

AppModule.kt
@Provides @Singleton internal fun provideProtectedApiHeader(@AcceptHeader accept: String, preferenceHelper: PreferenceHelper) : ApiHeader.ProtectedApiHeader = ApiHeader.ProtectedApiHeader(accept = accept, token = preferenceHelper.getToken())

thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions