5
OAuth2 흐름을 위해 AccountManager.getAuthToken()을 지원하는 Retrofit 클라이언트를 구현하는 가장 좋은 방법은 무엇인지 알아 내려고합니다. 내가 the exampleAccountManager, Retrofit 및 Dagger를 사용하여 OAuth2 구현
public final class ApiHeaders implements RequestInterceptor { ApiKeyProvider apiKeyProvider; @Inject public ApiHeaders(ApiKeyProvider apiKeyProvider) { this.apiKeyProvider = apiKeyProvider; } @Override public void intercept(RequestFacade request) { // How to handle exceptions from getAuthToken? request.addHeader("Authorization", "Bearer " + apiKeyProvider.getAuthKey()); } }
및
유사한 RequestInterceptor을 고려하고public class ExampleFragment extends InjectionFragment { @Inject ApiDatabase database; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); subscribe(database.getSomeData(), ...); } }
내가 이상적으로 U2020
을 다음있어 나는이 라인을 따라 간단한 인젝터를하고 싶습니다
public class ApiKeyProvider { AccountManager accountManager; Activity activity; public ApiKeyProvider(Activity activity, AccountManager accountManager) { this.activity = activity; this.accountManager = accountManager; } public String getAuthKey() throws AccountsException, IOException { AccountManagerFuture accountManagerFuture = accountManager.getAuthTokenByFeatures(ACCOUNT_TYPE, AUTHTOKEN_TYPE, new String[0], activity, null, null, null, null); return accountManagerFuture.getResult().getString(KEY_AUTHTOKEN); } }
"ActivityModule"(단검 DAG 그래프 아래쪽)에 따라 ApiKeyProvider를 ApiHeaders 클래스에 삽입하는 방법을 잘 모르겠습니다. 예외 처리 방법도 확실하지 않습니다.
누구나 완전한 작동 예제를 제공 할 수 있습니까?