タグ付けされた質問 「single-page-application」

3
認証とセッション管理のためのSPAのベストプラクティス
Angular、Ember、Reactなどのフレームワークを使用してSPAスタイルのアプリケーションを構築する場合、認証とセッション管理のベストプラクティスは何だと思いますか?問題への取り組みを検討する方法はいくつか考えられます。 APIとUIのオリジンドメインが同じであると想定して、通常のWebアプリケーションでの認証と同じように扱います。 これには、セッションCookie、サーバー側セッションストレージ、およびおそらく認証済みWeb UIがヒットして現在のユーザー情報を取得し、パーソナライゼーションやクライアント側の役割/機能の決定に役立つ可能性があるいくつかのセッションAPIエンドポイントが含まれる可能性があります。もちろん、サーバーは引き続きデータへのアクセスを保護するルールを適用し、UIはこの情報を使用してエクスペリエンスをカスタマイズします。 パブリックAPIを使用するサードパーティのクライアントと同様に扱い、OAuthと同様のトークンシステムで認証します。このトークンメカニズムは、サーバーAPIに対して行われたすべてのリクエストを認証するためにクライアントUIによって使用されます。 私はあまり専門家ではありませんが、ほとんどの場合、#1で完全に十分ですが、経験豊富な意見をいくつか聞きたいです。

16
ブラウザの戻るボタンイベントを検出する方法-クロスブラウザ
ユーザーがブラウザの戻るボタンを押したかどうかを確実に検出するにはどうすればよいですか? #URLシステムを使用して、単一ページのWebアプリケーション内でページ内戻るボタンの使用をどのように強制しますか? ブラウザの戻るボタンで独自のイベントが発生しないのはなぜですか。

11
シングルページアプリケーション:利点と欠点[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する SPAとその利点について読みました。私はそれらのほとんどが納得できないと思います。私の疑問を呼び起こす3つの利点があります。 質問: あなたはSPAの擁護者として行動し、最初の3つのステートメントについて私が間違っていることを証明できますか? === ADVANTAGES === 1. SPAは非常に応答性の高いサイトに非常に適しています。 すべての中間状態に対してサーバー側レンダリングを実装するのは困難です。小さなビューステートはURLにうまくマップできません。 シングルページアプリは、HTMLを取得するためのサーバーラウンドトリップを必要とせずにUIの任意の部分を再描画する機能によって区別されます。これは、データを処理するモデルレイヤーとモデルから読み取るビューレイヤーを使用することにより、データをデータのプレゼンテーションから分離することによって実現されます。 非SPAのモデルレイヤーを保持することの何が問題になっていますか?SPAはクライアント側のMVCと互換性のある唯一のアーキテクチャですか? 2. SPAを使用すると、ページをダウンロードするためにサーバーに追加のクエリを使用する必要がありません。 ええと、ユーザーがあなたのサイトにアクセスしている間にダウンロードできるページ数は?2、3?代わりに、別のセキュリティ問題が発生し、ログインページ、管理ページなどを別々のページに分ける必要があります。次に、SPAアーキテクチャと競合します。 3.他の利点がありますか?他のことについては聞かないでください。 === DISADVANTAGES === クライアントはJavaScriptを有効にする必要があります。 サイトへのエントリポイントは1つだけです。 セキュリティ。 PS私はSPAおよび非SPAプロジェクトに取り組んできました。理解を深める必要があるので、これらの質問をしています。SPAサポーターに害を及ぼすことは決してありません。SPAについてもう少し読むように言わないでください。それについてのあなたの考えを聞きたいだけです。

5
SPA SEOをクロール可能にする方法は?
私は、Googleの指示に基づいて、SPAをGoogleがクロールできるようにする方法について取り組んでいます。かなりの数の一般的な説明がありますが、実際の例を使用したより詳細な段階的なチュートリアルはどこにもありませんでした。これを終えた後、他の人もそれを利用し、おそらくさらに改善できるように、私の解決策を共有したいと思います。コントローラー を使用MVCし、サーバー側でPhantomjs、クライアント側でDurandalを有効にして使用しています。私はクライアントとサーバーのデータのやり取りにもBreezejsを使用しています。これらすべてを強くお勧めしますが、他のプラットフォームを使用しているユーザーにも役立つ一般的で十分な説明を提供しようと思います。Webapipush-state

2
ステートレス(=セッションレス)認証を使用する場合、CSRFトークンは必要ですか?
アプリケーションがステートレス認証(HMACなどを使用)に依存している場合、CSRF保護を使用する必要がありますか? 例: シングルページアプリがあります(そうでない場合、各リンクにトークンを追加する必要があります:)<a href="...?token=xyz">...</a>。 ユーザーはを使用して自分自身を認証しPOST /authます。認証が成功すると、サーバーはトークンを返します。 トークンは、JavaScriptを介して、単一ページアプリ内の変数に格納されます。 このトークンは、などの制限されたURLへのアクセスに使用されます/admin。 トークンは常にHTTPヘッダー内で送信されます。 HttpセッションもCookieもありません。 私が理解している限り、ブラウザはトークンを保存しないため、クロスサイト攻撃を使用する可能性はありません(?!)。したがって、サーバーにトークンを自動的に送信することはできません(Cookies /セッション)。 何か不足していますか?


1
Http.sysとURLPrefixを使用しているときにReact SPAを提供するようにドットネットコア3を構成する方法
URLPrefixを変更すると、次のエラーが発生します。 SPAのデフォルトページミドルウェアが見つからなかったため、デフォルトページ '/index.html'を返すことができず、他のミドルウェアがリクエストを処理しませんでした。 したがって、ドットネットコアにプレフィックスを通知するために何かが必要ですが、設定の正しい組み合わせを見つけることができないようです。 どうぞよろしくお願いいたします。 コードは以下のとおりです。 HostBuilderは次のようにセットアップされます。 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseHttpSys(options => { options.AllowSynchronousIO = false; options.Authentication.Schemes = AuthenticationSchemes.None; options.Authentication.AllowAnonymous = true; options.MaxConnections = null; options.MaxRequestBodySize = 30000000; options.UrlPrefixes.Add("http://localhost:5005/Product/Site"); }); webBuilder.UseStartup<Startup>(); }); ConfigureServices: public override void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddSpaStaticFiles(configuration => { …

3
TypeScriptでのJS Reactコンポーネントの使用:JSX要素タイプ 'MyComponent'はJSX要素のコンストラクター関数ではありません
私は、Reactフレームワークを使用するJavaScriptレガシープロジェクトを使用しています。まったく異なるTypeScript Reactプロジェクトで再利用したいReactコンポーネントがいくつか定義されています。 JS Reactコンポーネントは、controls.jsxファイルで定義され、次のようになります。 export class MyComponent extends React.Component { render() { return <h1>Hi from MyComponent! Message provided: {this.props.message}</h1>; } } 私のTypeScript Reactプロジェクトでは、次のように使用しようとしています。 import * as React from "react"; import * as ReactDOM from "react-dom"; import { MyComponent } from "../JavaScriptProject/controls"; ReactDOM.render( <MyComponent message="some nice message"/>, document.getElementById("documents-tree") ); しかし、次のエラーが発生します。 エラーメッセージは言う: …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.