我正在使用Auth0设置同步网关。
我的配置是:
{
"interface":":4984",
"log": ["*"],
"databases": {
"graps": {
"username": "sync_gateway",
"password": "sync_gateway",
"num_index_replicas": 0,
"server": "http://couchbase_server:8091",
"bucket": "test_bucket",
"enable_shared_bucket_access": true,
"import_docs": "continuous",
"oidc": {
"providers": {
"Auth0": {
"issuer": "https://my_tenant.eu.auth0.com",
"client_id": "secret_client_id",
"validation_key": "long_validation_key",
"register": true
}
}
},
"import_filter":
function(doc) {
if (doc.type != "mobile") {
return false
}
return true
}
,
"sync": function (doc, oldDoc) {
if (doc.sdk) {
channel(doc.sdk);
}
}
}
}
}
我的卷曲请求:
function(doc) {
if (doc.type != "mobile") {
return false
}
return true
}
并同步日志:
function (doc, oldDoc) {
if (doc.sdk) {
channel(doc.sdk);
}
}
所以,我的问题是:怎么了?为什么要同步 不会将JWT令牌视为oauth会话?
答案 0 :(得分:1)
对于通过Sync Gateway进行OIDC身份验证,您需要调用GET /{db}/_oidc
,这会将您重定向到OIDC提供程序(auth0)进行身份验证。然后,Auth0将使用配置的回调将用户重定向回Sync Gateway。这通常称为“ Open ID Connect”隐式流。
通过CURL进行操作非常棘手,因为您的OpenID提供程序可能具有用于登录的UI。建议通过浏览器执行此操作,或者在移动应用程序中使用网络视图。回调步骤完成后,便会设置会话cookie,您可以继续使用该cookie来使用API调用。