标签: parse-server

使用Google登录Parse(开源服务器)

既然解析服务器是开源的,那么它背后的社区已经添加了许多很酷的功能.在原始版本(parse.com)中,我们能够使用Facebook和Twitter登录.现在,我们有Google,LinkedIn,GitHub等.

在iOS上,有2个库(PFFacebookUtils和PFTwitterUtils)允许我们在我们的应用程序中轻松使用Facebook和Twitter身份验证并创建PFUser对象.

我想允许我的用户使用他们的Google帐户登录.由于没有PFGoogleUtils库,我无法弄清楚如何使用

+ (BFTask<__kindof PFUser *> *)logInWithAuthTypeInBackground:(NSString *)authType authData:(NSDictionary<NSString *, NSString *> *)authData
Run Code Online (Sandbox Code Playgroud)

PFUser的方法.

我试着看看PFTwitterUtils和PFFacebookUtils,但没有运气.我甚至尝试使用Twitter和Facebook登录而不使用PFTwitterUtils和PFFacebookUtils,但我不知道这是不是一个好主意.

那么,这里有没有人成功地将Google身份验证与他们在iOS上的Parse应用程序集成?

谢谢

ios parse-platform google-oauth swift parse-server

5
推荐指数
0
解决办法
324
查看次数

如何为parse-server配置emailAdapter?

我正在尝试在本地运行的parse-server实例上测试密码重置流程.每次我发送密码重置请求时,我都会收到以下错误error: Uncaught internal server error. Trying to send a reset password but no adapter is set undefined.我知道我应该在cli-definitions中配置emailAdapter,但我不太确定我应该把它放在那里.我尝试更改ParseServer.js中的构造函数

    emailAdapter: {
    module: 'parse-server-simple-mailgun-adapter',
    options: {
      // The address that your emails come from
      fromAddress: 'parse@example.com',
      // Your domain from mailgun.com
      domain: 'example.com',
      // Your API key from mailgun.com
      apiKey: 'key-mykey',
    }
  }
Run Code Online (Sandbox Code Playgroud)

但那没用.任何帮助是极大的赞赏!

passwords reset parse-platform mailgun parse-server

5
推荐指数
1
解决办法
2403
查看次数

使用解析服务器进行用户和身份验证并调用其他内部 REST Web 服务

我们计划在内部托管解析服务器,为我们正在构建的新移动应用程序提供内容服务。

此外,我们还有一些内部 REST 服务,除了我们在解析中构建的服务之外,我还希望我们的移动客户端使用这些服务。我想利用解析服务器用户、身份验证和会话管理来前置对这些内部 REST 服务的调用。

我发现云代码功能非常有限,因为它们只接受 POST,我希望客户端可以使用更 RESTful 的 api,将 1-1 映射到内部服务,这样我就可以传递请求。我创建了一个与解析服务器一起运行的快速中间件函数,它只接受传入请求,更改基本 URL,添加新标头(与身份验证相关)以及请求内部 Web 服务的路由/代理。

首先,是否可以获取解析客户端 api 来调用另一个 Express 端点?其次,在服务器端验证此调用的最佳方法是什么。

我创建了一个简单的 node.js 测试文件,在其中使用 javascript/node api 登录解析服务器,然后在休息客户端的标头中设置用户会话令牌以调用这个新端点,但寻找反馈或更好的方法。

var express = require('express');
var request = require('request');
var ParseServer = require('parse-server').ParseServer;
...

var api = new ParseServer({
    ...
});

app.use('/parse', api);

// Middleware function to auth request against parse and forward to other  web service
app.use('/api/', function (req, res, next) {

    var currentToken = req.headers['x-parse-session-token'];

    //TODO, validate user token.. HOW BEST?

    if …
Run Code Online (Sandbox Code Playgroud)

node.js express parse-server

5
推荐指数
1
解决办法
1918
查看次数

使用useMasterKey参数解析每个服务器查询

我正在从Parse迁移到Parse服务器.我的大多数代码都没有承诺.为此,我必须useMasterKey: true为每个查询/保存发送参数:( 必要时).

对于查找和获取查询或获取对象,我没有问题,例如:

Parse.com(找到)

query.find({
    success: function(results) {
    //...
Run Code Online (Sandbox Code Playgroud)

解析服务器(查找)

query.find({useMasterKey: true
    }).then(function(results) {
    //....
Run Code Online (Sandbox Code Playgroud)

Parse.com(获取)

user.fetch({
    success: function(user) {
    //...
Run Code Online (Sandbox Code Playgroud)

解析服务器(获取)

user.fetch({useMasterKey: true,
    success: function(user) {
    //....
Run Code Online (Sandbox Code Playgroud)

问题在于每个功能:

Parse.com(每个)

query.each(function(comment) {
    //...
Run Code Online (Sandbox Code Playgroud)

解析服务器(每个)

query.each({useMasterKey: true
      }).then(function(comment) {
      //....
Run Code Online (Sandbox Code Playgroud)

这是行不通的.

谢谢

javascript parse-server

5
推荐指数
1
解决办法
2219
查看次数

无法登录导致未编码的segue?

我有一个应用程序设置,用户可以登录和注销(这是通过heroku托管的Parse服务器,使用Parse框架处理).

要登录,用户输入凭据,如果服务器验证它们,则segue将它们移动到另一个viewcontroller.注销用户退出应用程序并将其转移回登录屏幕.这些工作正常.

如果初始登录凭据不正确,则会显示警告,提示用户重试并且用户未登录(显然)并保留在登录屏幕上.

但是,如果用户登录,注销,然后输入不正确的凭据(按此顺序,没有关闭模拟器),则会出现问题.错误的凭据会显示提示警报; 点击"确定"关闭警报,用户没有登录,但是视图被锁定到注销屏幕(注销按钮是......这应该只有登录用户才能访问).不存在segue segue(编码或在故事板上),将用户从登录直接移动到注销屏幕.

没有任何操作可行,因为许多操作都需要用户ID,并且没有任何操作因为没有登录.我不知道为什么不正确的登录会以这种方式移动VC,因为不存在可以做到这一点的segue.有一个反向运动(退出时),但没有朝那个方向运动.

有人有什么想法吗?以下是相关的登录代码.

@IBAction func signInTapped(_ sender: UIButton) {
        UIApplication.shared.beginIgnoringInteractionEvents()

        PFUser.logInWithUsername(inBackground: userNameTextField.text!, password: passwordTextField.text!, block: { (user, error) in
            if user != nil{

                self.performSegue(withIdentifier: "signInSegue", sender: self)//if the sign in works    
            } else{

                if let errorString = (error! as NSError).userInfo["error"] as? String{

                    let errorMessage = errorString

                    self.displayAlert("Failed login", message: errorMessage)//this is the code run when the login fails, yet it somehow can sometimes segue to the other viewcontroller
                }   
            }
        })
}
Run Code Online (Sandbox Code Playgroud)

以下是正在进行的分步示意图. 用户从登录页面开始并输入他/她的凭据 这会将用户(现在已登录)分隔为<code>tabbarViewController</code></li>
<li>然后他们导航到另一个选项卡,并有一个注销按钮 …</li></a></p> </div>
        <p>
          <a href=xcode swift parse-server

5
推荐指数
1
解决办法
173
查看次数

解析服务器云代码错误141:未经授权

我刚刚创建了一个用于在 Cloud9 上学习的解析服务器部署,当我使用 PostMan 使用 REST API 访问它时,一切正常。我现在正在尝试云功能。

我的 cloud.js 文件中有以下代码,

Parse.Cloud.define('hello', function(request, response) {
    var query = new Parse.Query("Test");
      query.find({
          success: function(data){
              response.success(query);
          },
          error: function(err){
              response.error(err);
          }
      })
});
Run Code Online (Sandbox Code Playgroud)

在响应中我收到以下错误,

{
  "code": 141,
  "error": {
    "message": "unauthorized"
  }
}
Run Code Online (Sandbox Code Playgroud)

我对 PostMan 的请求看起来像这样,

带有标头和 URL 的 Postman 请求

只要我不尝试查询并发送简单的响应(例如 ),响应就可以response.success("OK")

这是 Parse 的问题还是我错过了与授权相关的内容?

javascript rest node.js parse-cloud-code parse-server

5
推荐指数
1
解决办法
1507
查看次数

如何部署可扩展的 Parse LiveQuery Server?

最近,我们开始为我们的应用程序开发聊天功能,因为我们已经在使用 Parse SDK/Server,我们决定使用 Parse LiveQuery...

问题是,没有足够的文档说明如何在单独的服务器上部署 Parse LiveQuery 服务器!我们看到了这个:http : //docs.parseplatform.org/parse-server/guide/#scalability但我们并没有真正想出如何继续......

所以我们有几个问题:

为了创建可扩展的 Parse LiveQuery Server,我们需要做什么?(最好在 Digital Ocean / Heroku 上)

它如何与我们原始的 Parse Server 通信,我们的 MongoDB 存储在哪里?

javascript scalable parse-platform server parse-server

5
推荐指数
1
解决办法
1081
查看次数

iOS ParseError:尝试将objectId更改为脱机存储已知的对象

使用Parse Server,我的项目经常出现问题.首先,我调用Parse Cloud函数来填充用户的数据列表:

var dataSet: Set<MyData>?

func loadData(withParameters parameters: [String : Any]) {

        PFCloud.callFunction(inBackground: "loadData", withParameters: parameters) { (success, error) in

            if let objects = success as? [[String : Any]] {

                let dataTable: [MyData] = objects.map({ (object) -> MyData in

                    let myData = MyData(dataSource: PFObject(className: "MyData", 
                                        dictionary: object))
                    myData.dataSource?.objectId = object["objectId"] as? String
                    return myData
                })

                if self.dataSet == nil {
                    self.dataSet = []
                }

                self.dataSet = Set(dataTable)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在上面提到的代码中,我必须设置objectId因为没有这个,无论我从Parse获取多少个对象,当我将数组减少到具有最后一条指令的集合时,我最终只有一个对象.

但是,虽然这有效,但当我再次调用此函数来更新用户的数据时,我收到此错误myData.dataSource?.objectId = temp["objectId"] as? String …

ios parse-platform parse-server

5
推荐指数
1
解决办法
233
查看次数

解析服务器无法发送推送通知?

我有一个解析服务器(由heroku 托管),我已将其配置为发送推送通知。它在仪表板上似乎设置正确,但是当我实际发送一个时,它只是说推送已“已保存”,但当我去检查其状态时,它发送失败。这是设置的index.js:

var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it $
  serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',  // Don't$
  liveQuery: {
    classNames: ["Posts", "Comments"] // List of classes to support for query s$
  },
  push: JSON.parse(process.env.SERVER_PUSH || "{}"),
});
Run Code Online (Sandbox Code Playgroud)

PARSE_SERVER_PUSH(以及 appId、masterKey 和 serverURL)在 heroku 站点上的我的配置变量上进行配置,如下所示:

{ "ios": 
   { "pfx": "/Users/path/to/folder/Prod\Cert.p12 ", 
    "passphrase": "******", 
    "bundleId": "com.parse.app",
    "production": true
    }
} …
Run Code Online (Sandbox Code Playgroud)

heroku push-notification parse-server

5
推荐指数
1
解决办法
741
查看次数

解析服务器和 mongodb 问题

我正在尝试为我的快速应用程序设置解析服务器的本地安装。这是我所做的:

npm install -g parse-server mongodb-runner
Run Code Online (Sandbox Code Playgroud)

然后:

mongodb-runner start
Run Code Online (Sandbox Code Playgroud)

这触发了这个错误:

  Starting a MongoDB deployment to test against...{ HTTPError: Response code 403 (Forbidden)
at EventEmitter.ee.on.res (/usr/local/lib/node_modules/mongodb-runner/node_modules/got/index.js:250:24)
at EventEmitter.emit (events.js:182:13)
at Immediate.setImmediate (/usr/local/lib/node_modules/mongodb-runner/node_modules/got/index.js:99:8)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
name: 'HTTPError',
host: 'fastdl.mongodb.org',
hostname: 'fastdl.mongodb.org',
method: 'GET',
path: '/osx/mongodb-macos-x86_64-4.0.3.tgz',
protocol: 'https:',
url:
'https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.0.3.tgz',
statusCode: 403,
statusMessage: 'Forbidden',
headers:
{ 'content-type': 'application/xml',
 'transfer-encoding': 'chunked',
 connection: 'close',
 date: 'Wed, 17 Oct 2018 18:38:43 GMT',
 server: 'AmazonS3',
 'x-cache': 'Error from cloudfront',
 via: …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js parse-server

5
推荐指数
1
解决办法
1247
查看次数