使用Sync Gateway和OIDC隐式流程自动创建用户

时间:2019-01-16 10:48:50

标签: couchbase couchbase-sync-gateway

我正在使用Sync Gateway 2.1和Couchbase Server 6.0在android上设置Couchbase Lite。

我已经使用OpenID Connect隐式流程对Google登录进行了身份验证,并且能够获取用于身份验证的会话Cookie。

现在,我需要授权才能在SGW配置文件的javascript中使用“ requireUser()”功能,但我无法让SGW为我创建用户

根据我在文档中看到的内容,在配置文件中设置<!DOCTYPE html> <html> <head> <title>Realtime communication with WebRTC</title> <link rel="stylesheet" href="css/main.css" /> </head> <body> <table id="pressme" style="width:100%" bgcolor="red" height =500px> <button id="myBtn">Try it red</button> </table> <table id="showme" style="width:100%;display:none;" bgcolor="green"height=500px> <button id="myBtn1" style=display:none; >Try it green </button> </table> </body> </html>应该会使SGW在不存在的情况下自动创建用户,但是在发送请求时,我会不断收到"register":true响应到Unauthorized为主体/_session

我无法通过SGW自动创建用户吗?我已经设置了隐式流身份验证,以避免必须管理自己的Web应用程序进行授权,因此我想避免必须使用Admin rest API来创建用户。

这是我的SGW配置文件:

{ "name": "new_user_name" }

编辑: 这是我的请求日志:

{
"log": ["*"],
"adminInterface": ":4985",
"databases": {
    "lucidity": {
        "server": "http://xxx.xxx.xxx.xxx:8091",
        "bucket": "bucketname",
        "username": "syncgateway",
        "password": "***********",
        "num_index_replicas": 0,
        "enable_shared_bucket_access": true,
        "import_docs": "continuous",
        "oidc": {
            "providers": {
                "GoogleAuthFlow": {
                    "issuer":"https://accounts.google.com",
                    "client_id":"xxxxxxxxxxxxx.apps.googleusercontent.com ",
                    "validation_key":" xxxxxxxxxxxx",
                    "callback_url": "http://xxx.xxx.xxx.xxx:4984/bucketname/_oidc_callback",
                    "register":true
                }
            }
        },
        "users": { "GUEST": { "disabled": false, "admin_channels": ["*"] } },
        "sync": `function (doc, oldDoc) {
        }`
    }
}

答案是

POST http://xx.xx.xx.xx:4984/bucketname/_session
    Content-Type: application/json
    Content-Length: 2
    Authorization: [MY_ID_TOKEN_HERE]
    Body: { }

具有以下Set-Cookie标头:

{
      "authentication_handlers" : [ "default", "cookie" ],
      "ok" : true,
      "userCtx" : {
        "channels" : {
          "!" : 1,
          "*" : 1
        },
        "name" : null
      }
    }

0 个答案:

没有答案