我们正在使用带有Google身份验证的firebase.我们选择Google是因为我们的应用程序会调用Google API.我们使用从firebase返回的授权有效负载中包含的access_token授权这些api调用.但是,我们无法确定如何在access_token到期后刷新它.根据Google的说法,我们应该假设access_token可能因各种原因而失效.
因此,(据我所知),我们需要一种方法来刷新此令牌而不强制用户重新授权.理想情况下,我可以在请求firebase auth时请求离线access_type但是我没有看到如何做到这一点(再次触发firebase.authWithOAuthPopup(...),我们绝对不想做用户会话显然仍然有效.
是否可以通过Firebase获取离线access_type Google oauth令牌,以便Google返回refresh_token(https://developers.google.com/accounts/docs/OAuth2WebServer#formingtheurl)?使用refresh_token,我想我可以为api调用获取一个新的access_token.
我试过这个,但绝对不支持:
this.firebase.authWithOAuthPopup("google", this.authenticateGoogle.bind(this), {
access_type: 'offline', <-- not passed to Google
scope: 'https://www.googleapis.com/auth/userinfo.profile, https://www.googleapis.com/auth/devstorage.read_write'
});
Run Code Online (Sandbox Code Playgroud)
所有拨打https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=abcd的电话都会将access_type显示为在线.
谢谢
我努力破译有关创建具有acl角色的用户的文档.我想创建2个角色"admin"和"user",类似于文档所述.但是,我找不到Role.create的API文档.这个例子对我来说也没有任何意义.然后,我想通过REST API创建用户,然后为用户分配管理员或用户角色.这看起来很简单,但我正在挠头.有人可以提供一些如何入门的指导吗?
示例:存储在索引中的文档表示每个测试的测试分数和元数据。
{ "test": 1, "user":1, "score":100, "meta":"other data" },
{ "test": 2, "user":2, "score":65, "meta":"other data" },
{ "test": 3, "user":2, "score":88, "meta":"other data" },
{ "test": 4, "user":1, "score":23, "meta":"other data" }
Run Code Online (Sandbox Code Playgroud)
我需要能够过滤掉除最低测试分数之外的所有内容,并为每个应试者返回与该测试相关的元数据。所以我的预期结果集将是:
{ "test": 2, "user":2, "score":65, "meta":"other data" },
{ "test": 4, "user":1, "score":23, "meta":"other data" }
Run Code Online (Sandbox Code Playgroud)
我现在看到的唯一方法是首先通过用户使用嵌套的最小聚合进行术语聚合以获得他们的最低分数。
POST user/tests/_search
{
"aggs" : {
"users" : {
"terms" : {
"field" : "user",
"order" : { "lowest_score" : "asc" }
},
"aggs" : {
"lowest_score" : { …Run Code Online (Sandbox Code Playgroud)