ビジネス用の API を開発しています。
リクエストには、取得するために POST http 動詞を必要とする authTokens が必要です。フローは次のように機能するはずです-
- ユーザーのクライアントは、ユーザー名とパスワード (ssl 保護) を GetAuthToken サービスに送信します。サービスは認証トークンを返します。
- ユーザーのクライアントは、POST を必要とせずに、他の要求でトークンを使用できます。
便利な残りの関数 CheckAuthToken を作成して、ユーザーが自分の作業認証トークンが正しいかどうかをデバッグできるようにしました。ユーザーのメールアドレスと認証トークンを確認する必要があります。これは SOAP および POST 経由では正常に機能しますが、ルートは GET 経由では機能しないようです。
DTO は次のとおりです。
[Route("/auth/CheckAuthToken/{EmailAddress}/{AuthToken}")]
public class CheckAuthToken
{
public string EmailAddress { get; set; }
public string AuthToken { get; set; }
}
たとえば、私が要求した場合 (%2E
この投稿の推奨事項である に注意してください: ServiceStack Handler Not Found When Periods Present in Path ):
GET /auth/CheckAuthToken/aaron%40meemailsite%2Ecom/Hnot0real0auth0token4mzSBhKwFXY6xQcgX6XqsE%3D HTTP/1.1\r\n
それでも 404 が返されます。ServiceStack に渡す前にピリオドがデコードされているようです。
代わりにクエリ文字列変数を使用できることを認識し、リクエストを次のようにします。
GET /auth/CheckAuthToken?EmailAddress=aaronb%40bluebookinc%2Ecom&AuthToken=HwjQoKiHD2HSngFeeCH1k4mzSBhKwFXY6xQcgX6XqsE%3D HTTP/1.1\r\n
しかし、私はそれよりも柔軟であることを望んでいました。特にビジネス レイヤーの REST サービスでは、特定の機能で電子メールによるユーザー識別も必要になります。
何か案は?