小编Jac*_*cob的帖子

Android Paging Library如何知道加载更多数据?

我是开发Android应用程序的新手,我正在尝试以"正确的方式"做所有事情.所以现在,我正在将新的Android Paging Library实现到我的项目中,我需要从网络服务器加载文章列表.

我有一个ArticlesRepository类,它返回一个ArticleList包含ArticleListItem我想在RecyclerView中显示的实例的类.文章列表已经分页的服务器上,这样仓库发送对第一页的请求,并返回一个ArticleListpage属性设置为1articles包含属性List<ArticleListItem>的请求页面上的文章.我不知道一页上有多少篇文章.

现在,我能够实现一个PageKeyedDataSource<Integer, ArticleListItem>,但它只获取第一页:

@Override
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull LoadInitialCallback<Integer, ArticleListItem> callback) {
    ArticleList list = load(1);
    if (list != null) {
        callback.onResult(list.articles, null, next(list));
    }
}

@Override
public void loadBefore(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, ArticleListItem> callback) {
    ArticleList list = load(previous(params.key));
    if (list != null) {
        callback.onResult(list.articles, previous(list));
    }
}

@Override
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull …
Run Code Online (Sandbox Code Playgroud)

java android android-recyclerview android-viewmodel android-paging

12
推荐指数
1
解决办法
3117
查看次数

没有客户端密钥的 OAuth2 – 可能是网络钓鱼?

我一遍又一遍地阅读 OAuth2 规范,但我无法弄清楚一件事。没有客户端密钥的授权代码流(现在推荐用于单页应用程序)是否非常不安全,因为它很容易被用于网络钓鱼?让我解释:

  1. 客户端将资源所有者重定向到授权服务器,并传递重定向 URL 和客户端 ID。
  2. 资源所有者批准请求,授权服务器将其重定向到给定的重定向 URL 并传递授权代码。

现在,实际上,请求授权的客户端是一个网络钓鱼站点,不幸的是,用户无法识别该站点。传递到授权服务器的重定向 URL 指向恶意客户端,而不是合法客户端。客户端 ID 是公共信息,因此设置此类站点相当容易。

如果需要客户端密码会发生什么?

  1. 恶意客户端将收到授权码,但它不知道合法的客户端密钥。
  2. 资源服务器将拒绝发送访问令牌,因为未提供有效的客户端密钥。用户信息安全。

但是如果资源服务器不需要客户端密钥怎么办?

  1. 恶意客户端将收到授权码,即使它不知道客户端密钥,它也会请求访问令牌。
  2. 资源服务器将接受请求,因为提供了有效的授权代码和客户端 ID,并且不需要客户端密钥。恶意Client获取Access Token,用户信息被泄露。

我是否遗漏了某些内容,或者这是正确的,并且没有什么可以使单页应用程序使用 OAuth2 更安全?

javascript security oauth single-page-application

5
推荐指数
1
解决办法
6794
查看次数