Jwt openid隐式流授权用户无法从syncgateway couchbase提取

Jwt openid隐式流授权用户无法从syncgateway couchbase提取,jwt,couchbase,openid,couchbase-lite,couchbase-sync-gateway,Jwt,Couchbase,Openid,Couchbase Lite,Couchbase Sync Gateway,大家好,我在本文档中使用openid implisit flow对我的用户进行授权,syncgateway获得此响应 { "authentication_handlers": [ "default", "cookie" ], "ok": true, "userCtx": { "channels":

大家好,我在本文档中使用openid implisit flow对我的用户进行授权,syncgateway获得此响应

 {
    "authentication_handlers": [
        "default",
        "cookie"
    ],
    "ok": true,
    "userCtx": {
        "channels": {
            "!": 1
        },
        "name": "staging-dialysiscloud.icdgroup.org%2Fids_00000000-0000-0000-0000-100000000000"
    }
}
“1”在“!”前面是什么意思?我如何访问我不希望我的用户限制从公共频道使用的其他频道。我应该向jwt令牌或同步配置文件添加什么?
我可以推到我的存储桶,但我不能通过这个
sessionId从中提取数据

1
表示映射到公共频道的序列(即,添加频道时的序列值)。当同步网关启动时,将自动创建公共通道。OpenID Connect身份验证在您的情况下是成功的,但用户只能访问公共通道。更新文档时,您可以通过管理员REST API、配置文件或通过同步功能授予用户/角色对特定频道集或*频道的访问权限

要通过Admin REST API授予用户访问特定通道集的权限,请从运行同步网关的终端发出如下命令:

http --verbose PUT http://localhost:4985/default/_user/alice admin_channels:='["channel-1", "channel-2"]'
这将允许用户
alice
访问
channel-1
channel-2

如果希望用户访问数据库中的所有文档,可以授予用户对
*
频道的访问权限。例如,下面的命令将授予用户
bob
*
频道的访问权,他将能够访问数据库中的所有文档

http --verbose PUT http://localhost:4985/default/_user/bob admin_channels:='["*"]'
您可能希望使用您的用户名更改用户名
bob
,即
登台dialysiscloud.icdgroup.org%2Fids_u00000000-0000-0000-10000000000

注意:您需要安装
httpie
才能从运行http命令 终点站。如果您还没有,并且正在使用MacOSX,只需发布
brew安装httpie


如果您想阅读更多关于访问控制和同步网关通道的信息,这是一个很好的文档。

我不定义staging dialysiscloud.icdgroup.org%2Fids_00000000-0000-0000-0000-10000000000 user.syncgateway从jwt令牌内部的数据定义它。我不定义任何用户,我想使用jwt令牌登录到syncgateway,但仅此用户访问公共频道。我有一个问题,syncgateway是否支持使用access token而不是idtoken登录,syncgateway是否支持在token中定义角色?答案是否!同步网关仅支持使用ID令牌的OIDC身份验证,ID令牌应为有效的JSON Web令牌。