我正在尝试为我本地安装的parse-server-example启用重置密码和电子邮件验证.我可以看到我们有https://github.com/parse-server-modules/parse-mailgun.
但我不清楚如何在parse-server-example中使用parse-mailgun,我完全迷失了它.有人可以解释或建议启用它的步骤吗?
问候Atul
我有一个简单的Cloud Code命令来创建或更新对象.如果没有传入objectId,则例程创建一个新对象并返回objectId.如果objectId存在于参数列表中,它将获取对象并相应地更新参数.
该例程适用于新对象.
在object.save()当我尝试更新的对象,失败,尽管object.fetch()子程序工作.
错误:代码= 101,消息=找不到对象.
详细的服务器日志表明一个非常奇怪的PUT命令......
PUT/parse/classes/Receipt/[object%20Object]
我期望看到的是
PUT/parse/classes/Receipt/GJaXcf7fLD
对象ACL是公共r + w
为什么object.save()不使用有效的objectId?
_
云代码
Parse.Cloud.define("uploadReceipt", function(request,response) {
var Receipt = Parse.Object.extend("Receipt");
var receipt = new Receipt();
// passed in parameters are ['property' : ['type' : t, 'value' : v]]
var dict = request.params;
var objectIdDict = dict["objectId"];
console.log("Object Dict: " + objectIdDict);
Parse.Promise.as().then(function() {
// if we already have an objectId we are UPDATING
// Need to FETCH first …Run Code Online (Sandbox Code Playgroud) 在一个单元格中,我想在Parse服务器中显示NSDate的时间.这是代码,但它不起作用.什么都没有改变,数据没有被解析.
if let createdat = (object?["createdAt"] as? String){
let pastDate = Date(timeIntervalSinceNow: TimeInterval(createdat)!)
cell.TimeAgo.text = pastDate.timeAgoDisplay()
}
extension Date {
func timeAgoDisplay() -> String {
let secondsAgo = Int(Date().timeIntervalSince(self))
let minute = 60
let hour = 60 * minute
let day = 24 * hour
let week = 7 * day
if secondsAgo < minute {
return "\(secondsAgo) sec ago"
} else if secondsAgo < hour {
return "\(secondsAgo / minute) min ago"
} else if secondsAgo < day { …Run Code Online (Sandbox Code Playgroud) 我是使用https://parse.com/docs/server/guide作为指南从Parse迁移到Heroku(带MongoLab沙箱)的众多用户之一.
迁移的事情进展顺利(可以通过远程仓库上的REST命令创建/检索对象),直到我尝试使用(iOS)Facebook登录.
方法:
[PFFacebookUtils logInInBackgroundWithReadPermissions: ... ]
Run Code Online (Sandbox Code Playgroud)
当Parse托管时,它一直在工作,现在返回以下错误:
[Error]: Facebook auth is invalid for this user. (Code: 101, Version: 1.12.0)
Run Code Online (Sandbox Code Playgroud)
注意:对我(之前工作的)iOS代码的唯一更改是将Parse服务器指向我新的手动托管的repo,如下所示:
let parseConfiguration = ParseClientConfiguration(block: { (ParseMutableClientConfiguration) -> Void in
ParseMutableClientConfiguration.applicationId = "<*APP ID*>"
ParseMutableClientConfiguration.clientKey = "<*CLIENT KEY*>"
ParseMutableClientConfiguration.server = "https://<*HEROKU APP ID*>.herokuapp.com/parse"
})
Parse.initializeWithConfiguration(parseConfiguration)
Run Code Online (Sandbox Code Playgroud)
对开源解析服务器代码(https://github.com/ParsePlatform/parse-server-example)的唯一修改是替换配置以匹配我的Parse/mongo标识:
var api = new ParseServer({
databaseURI: 'mongodb://<*UNIUQUE ID*>' || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: '<*PARSE APP ID*>',
masterKey: '<*PARSE MASTER KEY*>'
});
Run Code Online (Sandbox Code Playgroud) 我有我的实例正在运行并且能够远程连接但是我被困在哪里将此参数设置为false,因为它声明默认设置为true:
failIndexKeyTooLong
Run Code Online (Sandbox Code Playgroud) 我想将auth0.com与开源解析服务器结合使用.
我目前的方法是通过iOS的Lock库使用标准登录从auth0获取令牌.使用该令牌,我想在我的解析服务器上调用一个自定义身份验证方法,该方法检查令牌是否有效以及是否将登录用户.
我的问题是几乎没有关于为parse-server编写自定义oauth的文档.
到目前为止,我有自定义身份验证的代码.
var Parse = require('parse/node').Parse;
function validateAuthData(authData, options) {
console.log('validateAuthData()');
return new Promise((resolve, reject) => {
try {
var decoded = jwt.verify(authData.access_token, opions.sharedSecret);
if (authData.id === decoded.sub) {
resolve({});
}
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Unauthorized');
} catch(e) {
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, e.message);
}
});
}
function validateAppId(appIds, authData) {
console.log('validateAppId()');
return Promise.resolve();
}
module.exports = {
validateAppId: validateAppId,
validateAuthData: validateAuthData
};
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,我也不明白如何使用此代码来验证特定用户.解析服务器是否进行数据库查找以将特定身份验证数据与特定用户相匹配?另外,如何使用自定义身份验证注册新用户.当用户尝试登录但在我的解析数据库中它还不存在时会发生什么?
另一种似乎是这个,使用规则的auth0.com.有什么区别以及该规则将如何运作?我对身份验证,oauth和jwt的经验很少.
最后,我使用它从我的iOS客户端调用我的自定义身份验证.然而,这也不起作用,但我不确定它是由于iOS部分还是因为我的自定义身份验证尚未运行.
总而言之,我遇到了一些看似相当容易的问题.我想使用auth0作为我的身份验证提供程序,我想整合它是解析服务器,因为我非常感谢解析和客户端sdk的便利性.我相当肯定有更多的人有类似的问题,但是我没有找到任何关于如何正确执行此操作的明确资源.
更多链接
我的一个Parse Server云功能表现非常糟糕,我希望有人可以帮我指出正确的方向,开始调试原因,以便我可以解决它.
我使用New Relic APM来执行函数的事务跟踪,并且可以理解这里的大多数数字,除了罪魁祸首,它似乎是"Expressjs Middleware:jsonParser",需要37,700毫秒才能完成.
有谁知道可能导致什么样的操作,以及如何修复它?我的猜测是有一个巨大的JSON对象向上或向下传递,但我仍然对所有这些Web服务器的东西都是一个菜鸟,所以我想得到第二个意见,谢谢!:)
我正在使用独立的Parse服务器,尝试向多个安装发送推送通知.
解析服务器不允许我从Cloud Code查询安装集合,返回以下错误:
Error handling request: ParseError {
code: 119,
message: 'Clients aren\'t allowed to perform the find operation on the installation collection.' } code=119, message=Clients aren't allowed to perform the find operation on the installation collection.
Run Code Online (Sandbox Code Playgroud)
Cloud Code中的查询如下所示:
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.containedIn('user', users);
pushQuery.find({ ...
Run Code Online (Sandbox Code Playgroud)
获取一组用户的安装列表并将推送发送到所有用户的正确方法是什么?
我还尝试通过Parse.Cloud.useMasterKey();在查询之前立即调用来使Cloud Code使用masterKey .没有效果,主密钥不包含在查询请求标头中.
我正在使用使用Parse-Server的back4app BaaS服务.对于ClientSide,我使用html5Mode(true)运行AngularJS;
我的问题是这不起作用:http://app.rizop.tv/dashboard 虽然这样做是正确的:http://app.rizop.tv
知道如何修复expressJS以正确的方式处理我的路线吗?
我有这个配置:
云\ app.js
// Helper modules that will be used
var path = require('path');
var bodyParser = require('body-parser')
// This imports the Router that uses the template engine
var index = require('./routers/index');
// Sets the template engine as EJS
app.set('view engine', 'ejs');
// This defines that the 'views' folder contains the templates
app.set('views', path.join(__dirname, '/views'));
// These options are necessary to
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
// This bind …Run Code Online (Sandbox Code Playgroud) 我有一个Message类 - 它包含一个群发消息,可以按需提供给许多用户,但每个用户只需要一次,当他需要新消息时.我怎样才能确保用户在交付后再也不会再次获取它?
IDEA#1:
Message.deliveredTo将是一个Relation以_User物体.在Message交付给用户之后,他将自己添加到了Message.deliveredTo Relation.
当用户以后寻找未送达时Messages,他会找到Messages除了他所在的所有人之外的所有人deliveredTo Relation:
var messagesQuery = new Parse.Query("Message");
messagesQuery.notEqualTo("deliveredTo", request.user);
messagesQuery.find() ...
Run Code Online (Sandbox Code Playgroud)
IDEA#2:
<messageId>_delivered是在Role创建Messageid时<messageId>创建的.该Message的ACL-read是残疾人Role.在Message交付给用户之后,他将自己添加到了<messageId>_delivered Role.
当用户以后寻找未送达时Messages,他会找到Messages除了他所在的所有人之外的所有人<messageId>_delivered Role:
var messagesQuery = new Parse.Query("Message");
messagesQuery.find({ sessionToken: request.user.getSessionToken() }) ...
Run Code Online (Sandbox Code Playgroud)
IDEA#3:
DeliveredMessage是一个班级.在将a Message传递给用户之后,他DeliveredMessage使用包含用户message …
parse-server ×10
ios ×3
mongodb ×3
heroku ×2
javascript ×2
angularjs ×1
auth0 ×1
back4app ×1
express ×1
facebook ×1
node.js ×1
oauth ×1
performance ×1
swift ×1
swift3 ×1