2

いくつかのダイアログ/モーダルウィンドウを備えたシングルページアプリになる新しいWebサイトを開発しています。フロントエンドにバックボーンを使用したい。これにより、ajax / websocketsを使用してバックエンドが呼び出され、テンプレートを使用して結果のjsonがレンダリングされます。
バックエンドとして、nodejs expressアプリを使用します。これは、クライアントに必要なjsonを返します。これは、ある種のAPIになります。これはサーバー側のビューを使用しません。
クライアントは、認証および場合によってはカスタム登録フォームにFacebook、Twitterなどを使用します。
css、js、htmlファイルなどのクライアント静的リソースはnginx(CDN以降)によって処理されます。

私が今持っている質問:

  • 特定のユーザーがAPIで何らかのアクションを実行する権利を持っていることをどのように判断できますか(つまり、建物を削除する、新しい建物を作成する)?これは承認の質問です。ユーザーがログインするときに役割を与え、それに基づいてユーザーの権利を決定することを考えました。これは機能しますか?
  • 上記の質問と同様に、この役割ベースのセキュリティはAPIを保護するのに十分ですか?または、トークンやリクエスト署名などを追加する必要がありますか?
  • このアーキテクチャは受け入れられますか、それとも私はエンジニアリングと複雑さを超えていますか?
4

3 に答える 3

3

パスポートは、パズルの認証部分のオプションです。私は開発者ですので、ご利用の際はお気軽にご質問ください。

于 2012-05-13T21:18:47.367 に答える
0
  • ユーザーがログインするときに役割を与え、それに基づいてユーザーの権利を決定することを考えました。これは機能しますか?
    • はい、これで動作します。サーバーからフェッチされた後、ユーザーの特定の役割を確認できます。その後、このロールに応じて異なるUI要素を表示できます。
  • この役割ベースのセキュリティは、APIを保護するのに十分ですか?または、トークンやリクエスト署名などを追加する必要がありますか?
    • それだけでは十分ではありません。誰でもコンソールに飛び乗って、のようなものを設定できuser.admin = trueます。APIで、リクエストからのユーザートークンを検証し、関連するユーザーが適切な権限を持っていることを確認する必要があります。
  • このアーキテクチャは受け入れられますか、それとも私はエンジニアリングと複雑さを超えていますか?
    • 少なくとも、API検証レイヤーが必要です。それはまともなスタートを切るでしょう、そして過剰なエンジニアリングではないでしょう。
于 2012-05-12T16:34:25.613 に答える
0

あなたの質問の認証部分には、connect/expressの認証ミドルウェアであるeveryauthを使用します。ほぼすべてのoauth-social-network-thingieをサポートします。

ロール管理の場合、 node-rolesを試してみることができます。私自身は使用しませんでしたが、サーバー側の役割をチェックするので、役立つはずです。もちろん、これはAPIがnode.jsに実装されている場合にのみ役立ちます。そうでない場合は、node.jsアプリを介してAPI呼び出しを「プロキシ」する必要があります。

私はあなたを助けることができると思います!:)

于 2012-05-13T09:41:54.683 に答える