meteor - 如何将 account-js 包集成到已经存在的 mongo db?
问题描述
我有一个流星应用程序并想迁移非流星应用程序。我发现 account-js 与流星账户系统兼容。当我创建新用户时,一切正常,但如果我想使用已经存在的用户帐户登录,js 方法不起作用,我每次都会收到 unauth 消息。如何使用 account-js 登录已经存在的用户?
const accountsPassword = new AccountsPassword({
verifyPassword: (plainPassword, storedPassword) => {
const hashedPassword = crypto.Hash('sha256').update(plainPassword).digest('hex')
console.log('*****Verify Password*****')
return bcrypt.compareSync(plainPassword, storedPassword)
}
})
const accountsServer = new AccountsServer(
{
db: accountsMongo
},
{
password: accountsPassword
}
)
const accountsGraphQL = AccountsModule.forRoot({ accountsServer })
const schema = makeExecutableSchema({
typeDefs: mergeTypeDefs([typeDefs, accountsGraphQL.typeDefs]),
resolvers: mergeResolvers([resolvers, accountsGraphQL.resolvers]),
schemaDirectives: {
...accountsGraphQL.schemaDirectives
}
})
const schemaMiddleware = applyMiddleware(schema, permissions)
解决方案
accounts-js 使用与 Meteor 身份验证系统完全不同的身份验证机制。account-js 使用 JWT 令牌,而 Meteor 使用唯一哈希,因此它不是交叉兼容的。我写了一篇关于它的博客文章,你可以在这里阅读
推荐阅读
- python - 试图创建一个欢迎用户的 discord.py 机器人,但似乎不起作用
- asp.net-core - 如何根据 ASP.Net Core 中的 DropDownList 选择显示和隐藏 TextBox?
- amazon-web-services - 在 CDN 和 aws s3 对象上设置缓存标头有什么区别?
- arrays - 使用 python ndarray 进行条件索引
- kotlin - kotlin 中的 use{} 和 apply{} 有什么区别?
- swift - Swift 数组边界错误。仔细约束索引 - 无论如何都超出范围。为什么?
- function - python的sin函数中的错误
- google-apps-script - 根据其中一列中的文本过滤将压缩.txt文件中的行导入谷歌表格?
- reactjs - 为什么自定义钩子的回调永远看不到组件道具
- .net - 如何重置自定义控件