Javascript docker容器上解析服务器的自定义身份验证(OAuth2)
因此,正如标题所示,我正在寻找一种方法,将自己的自定义身份验证服务集成到安装在docker容器中的解析服务器中。这种身份验证基本上是keydape的OpenID实现 关键是我没有(我的体系结构最好不要)在本地机器上使用express提供解析服务器 到目前为止,我一直在尝试的是搜索互联网,阅读问题,阅读JavaScript解析服务器文档和指南以及其他内容,以了解如何实现它 似乎我做什么都不重要,在每次测试结束时,我都会得到一个Javascript docker容器上解析服务器的自定义身份验证(OAuth2),javascript,docker,parse-platform,docker-compose,parse-server,Javascript,Docker,Parse Platform,Docker Compose,Parse Server,因此,正如标题所示,我正在寻找一种方法,将自己的自定义身份验证服务集成到安装在docker容器中的解析服务器中。这种身份验证基本上是keydape的OpenID实现 关键是我没有(我的体系结构最好不要)在本地机器上使用express提供解析服务器 到目前为止,我一直在尝试的是搜索互联网,阅读问题,阅读JavaScript解析服务器文档和指南以及其他内容,以了解如何实现它 似乎我做什么都不重要,在每次测试结束时,我都会得到一个252此身份验证方法不受支持错误!(即使我使用facebook,oaut
252此身份验证方法不受支持
错误!(即使我使用facebook
,oauth
,oauth2
等,也会发生这种情况)
现在,docker compose服务如下所示:
parse-server:
image: parseplatform/parse-server
ports:
- "${SERVER_PORT}:1337"
restart: "always"
volumes:
- ./server/parse/custom-auth:/parse-server/custom-auth
depends_on:
- mongodb
links:
- mongodb:mongo
environment:
- PARSE_SERVER_APPLICATION_ID=${APP_ID}
- PARSE_SERVER_MASTER_KEY=${MASTER_KEY}
- PARSE_SERVER_DATABASE_URI=mongodb://mongo:${MONGO_PORT}/dev
- PARSE_SERVER_START_LIVE_QUERY_SERVER=1
- PARSE_SERVER_LIVE_QUERY={"classNames":${LIVE_QUERY_CLASSES}}
- PARSE_SERVER_MOUNT_GRAPHQL=${GQL_API}
- PARSE_SERVER_MOUNT_PLAYGROUND=${GQL_PLAYGROUND}
- PARSE_SERVER_AUTH_PROVIDERS={"swwwan-mail-auth":{"module":"/parse-server/custom-auth/swwwan-mail-auth/index.js"}}
以及登录/注册部分:
export const loginWithParse = async (account: IUserColumnTypes) => {
if (account.username === null || account.password === null) {
throw "validation failed";
}
// @ts-ignore
const loggedIn = await Parse.User.logInWith("swwwan.mail-auth", {
authData: {
id: "",
access_token: "",
},
});
console.log({ loggedIn });
//return await Parse.User.logIn(account.username, account.password);
};
登录/注册的另一种选择:
export const loginWithParse = async (account: IUserColumnTypes) => {
if (account.username === null || account.password === null) {
throw "validation failed";
}
const u = new Parse.User();
u._linkWith("swwwan-mail-auth", {
authData: {
id: "tester",
access_token: "sample_access_token",
},
})
.then(res => console.log(res))
.catch(e => console.log(e));
//return await Parse.User.logIn(account.username, account.password);
};
更新:通过使用第二个选项,我实际上得到了错误:
error: Parse error: Invalid key name: authData.swwwan-mail-auth.id {"code":105,"stack":"Error: Invalid key name: authData.swwwan-mail-auth.id
有没有办法让它发挥作用?也许我这里遗漏了什么
tnx:)
-
导致了一个问题,因为当我们将其保存在数据库中时,适配器名称被用作密钥- (你做得对)