当前位置: 首页 > 知识库问答 >
问题:

用AccountManager、Reverfit和Dagger实现OAuth2

翁宏茂
2023-03-14

我试图找出实现一个支持AccountManager.getAuthToken()的OAuth2流的改型客户机的最佳方法。我跟着U2020

理想情况下,我希望有一个简单的注射器沿着这些线

public class ExampleFragment extends InjectionFragment {
  @Inject ApiDatabase database;

  @Override public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    subscribe(database.getSomeData(), ...);
  }
}
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());
  }
}
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);
  }
}

共有1个答案

公良文彬
2023-03-14

结果有点冗长。希望这一要点包含所有相关文件

 类似资料:
  • 问题内容: 我正在尝试使用从Android的AccountManager接收的令牌而不是使用用户名和密码来实现IMAP gmail客户端。 Google为该IMAP示例提供了oauth2 http://code.google.com/p/google-mail- oauth2-tools/source/browse/#svn%2Ftrunk%2Fjava%2Fcom%2Fgoogle%2Fgoog

  • 我已经开始设置匕首2,并面临一个奇怪的问题,看起来像一个bug对我来说。 我有1个主组件和2个子组件,我‘加’在父组件中。我为每个子组件使用不同的。问题是,我可以很容易地为第一个子组件进行字段注入,但我不能为第二个子组件进行相同的注入。注入的字段保持%s。 我正在注射的对象: 这两个对象都具有作用域(作为它们的构造函数字段)。会不会是范围冲突? ---更新--- 我已经检查了由Dagger2生成的

  • :此接口包含此组件所需的所有方法。 现在,问题是,如果我在中执行此调用,则此类不是由Dagger生成的。如果调用相同的行,则由dagger生成de类,不会有任何问题。 我寻找的另一个解决方案是创建一个具有相同结构的其他不同类,并将作为内部对象,结果也是一样。

  • 我正试图优化这段代码以实现缓存的目的。此代码使缓存仅为1天之前,它重新连接到internet再次建立新的缓存。我想让它60天前,它再次访问网络,使新的缓存。此外,使用picasso对来自缓存的映像也会减慢picasso:2.5.2reverfit2:reverfit:2.7.2reverfit2:Converter-GSON:2.7.2OKHTTP3:OKHTTP:4.4.1OKHTTP3:Log

  • Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子开源出来,主要在于经过了公司内部多个项目的实践,也取得了不错的成效,因此,希望开源以后可以对大家有所帮助及参考。 设计理念 Dagger首先是一个WebUI自动化框架,提供了赖以操纵浏览

  • 在Dagger Hill View模型1.0.0-alpha01中 我可以使用以下 然而,当我迁移到匕首柄视图模型1.0.0-alpha03时 我收到了警告 新的工作方式是什么?