1

私は、Perfect と Turnstile-Perfect を使用してStormpath の iOS クライアント側ノート チュートリアルのバックエンドを構築することにより、 Turnstile-Perfect (サーバー側で迅速かつ完全なための Stormpath 実装) を使用して、iOS サーバー側のユーザー認証をテストしようとしています。基本的なリクエストに対してサーバーを起動して実行することはできますが (投稿の下部を参照)、ユーザー認証はまったく機能しません。おそらく、実際に格納するデータベース構造を作成するデータベースをセットアップする手順が不足しているためです。認証データ。具体的には、Postman を使用して次の投稿でサーバーをテストする場合:

{ "givenName": "Testing", "surname": "Tester", "email": "test@example.com", "password": "TestTest1" }

次のエラーが表示されます。

The file /register was not found.

これを構築するにはどうすればよいですか?Stormpath の node.js 実装を実行するときは、次のように実行します。

npm install -g stormpath-spa-dev-server

迅速なパーフェクトターンスタイルに相当するものは何ですか?


このプロジェクトの「main.swift」ファイルに記述されている現在のサーバー コード:

import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
import TurnstilePerfect
import SQLite

// Create HTTP server.
let server = HTTPServer()

// The Turnstile instance
let turnstile = TurnstilePerfect()
server.setRequestFilters([turnstile.requestFilter])
server.setResponseFilters([turnstile.responseFilter])


// Register your own routes and handlers
func getHandler(request: HTTPRequest, response: HTTPResponse) {
  response.appendBody(string: "get notes")
  response.completed()
}

func postHandler(request: HTTPRequest, response: HTTPResponse) {
  response.appendBody(string: "post notes")
  response.completed()
}

var routes = Routes()
routes.add(method: .get, uri: "/notes", handler: {
  request, response in getHandler(request: request, response: response)
  }
)
routes.add(method: .post, uri: "/notes", handler: {
        request, response in postHandler(request: request, response: response)
  }
)

// Add the routes to the server.
server.addRoutes(routes)

// Set a listen port of 3000
server.serverPort = 3000

// Set a document root.
// This is optional. If you do not want to serve static content then do not set this.
// Setting the document root will automatically add a static file handler for the route /**
server.documentRoot = "./webroot"

// Gather command line options and further configure the server.
// Run the server with --help to see the list of supported arguments.
// Command line arguments will supplant any of the values set above.
configureServer(server)

do {
  // Launch the HTTP server.
  try server.start()
} catch PerfectError.networkError(let err, let msg) {
  print("Network error thrown: \(err) \(msg)")
}
4

0 に答える 0