問題タブ [slim-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
twig - Slim3 Twigでルートリンクを取得するには?
私は自分のルートを次のように定義しました:
次のような名前でルートリンクを取得することに興味があります。{% get_route('about.page') %}
どうすればこれを達成できますか?
php - リダイレクト後にリクエストのデータをリダイレクトして保存する方法
エラーとフラッシュ メッセージが表示されたログイン ページにユーザーをリダイレクトしようとしています。
現在、私はこれをやっています:
しかし、エラー メッセージとフラッシュ メッセージが表示されたまま、ログイン ページにリダイレクトしたいと考えています。私はこの方法を試しましたが、うまくいきません:
php - slim-jwt-auth によるトークンの生成
JSON API のトークン ベースの認証を作成するために、slim-jwt-authを使用しています。
ドキュメントは非常に役に立ちますが、理解できないことの 1 つは、トークンがどのように生成されるのかということです。ドキュメントによると、ミドルウェアはトークンをデコードできますが、エンコードする方法がわかりません。
私が見たいくつかのプロジェクトはfirebase/jwtを使用していますが、これが必要かどうか、または と互換性があるかどうかはわかりませんslim-jwt-auth
。
slim-jwt-auth はトークンを生成できますか?
php - Slim3/DRY - コードを複製せずにエラー/例外を正しく処理するには?
私は Slim3 を使用してかなり大きな JSON API に取り組んでいます。現在、コントローラー/アクションには次のものが散らばっています。
アプリケーションの特定の時点で問題が発生する可能性があり、適切な応答が必要になります。しかし、よくあることの 1 つは、エラー応答が常に同じであることです。はstatus
常にerror
であり、data
はオプションであり (フォーム検証エラーの場合data
にはそれらが含まれます) message
、ユーザーまたは API の消費者に何が問題なのかを示すように設定されています。
コードの重複のにおいがします。コードの重複を減らすにはどうすればよいですか?
頭のてっぺんから考えられるのは、カスタム例外を作成することだけでした。そのようなApp\Exceptions\AppException
ものは、オプションを取りdata
、message
フォームを取得し$e->getMessage()
ます。
$next
次に、try/catch でラップされた呼び出しを行うミドルウェアを作成します。
これで、コード内のポイントで行う必要があるのは、throw new \App\Exceptions\AppException("Username or password incorrect", null)
.
これに関する私の唯一の問題は、間違った理由で例外を使用しているように感じ、デバッグが少し難しくなる可能性があることです。
重複を減らし、エラー応答をクリーンアップするための提案はありますか?
php - 追加のミドルウェアをスリム 3 に追加して、cors で jwt 認証をブロックするのはなぜですか?
tuupola/corsを使用しているスリム 3 プロジェクトにカスタム ミドルウェアを追加する際に問題が発生し、slim-jwt-authを認証用のベアラーとしてヘッダーに格納された jwt トークンとともに使用しています。
すべてがうまくいっています。chrome から ajax リクエストを行うと、まず options リクエストを送信してアクセスが可能であることを確認してから、jwt トークンをヘッダーに Authorization: Bearer として適切なリクエストを送信するのですが、ミドルウェアをフローに追加すると、オプション リクエストが送信され、200 Ok が返されますが、実際のリクエストは送信されません。
この問題は、カスタム ミドルウェアが最小限の形式に取り下げられ、まったく変更されていない場合でも発生します。ミドルウェアは次のように定義されます。
ミドルウェア自体は次のように単純です。
ミドルウェアは、次のようにすべてのルートに追加されます。
MyMiddleware を無効にすると、オプション リクエストとフォローアップ リクエストの両方がヘッダーの jwt トークンを使用して実行されますが、MyMiddleware を有効にすると、オプション リクエストは正常に送信され、200 OK が返されますが、2 番目のリクエストは送信されません。
何が起こっているのか、どのようにデバッグするのか、私は本当に困惑しています。