2016-09-13 3 views
1

質問タイトルには、を使用して一時URLを生成することが可能ですか?URLに患者IDまたは識別情報を表示せずに患者のデータを表示するビューにルーティングしますか?ボタンをクリックすると、リンクが生成されます。つまり、ランダムな文字のURLはwww.example.com/xuye9039j23lです。このURLを表示して処理すると(saveボタンがクリックされると、URLは再び使用できなくなります)。誰かが私にこのことが可能になる方法の論理を教えてもらえますか?私はpassword recovery電子メールと幾分似ていると思うが、それはリンクが一度クリックされると終了する。私はそれが重要な場合は、C#Web APIを使用しています。角度とui-routerを使って一時URLや経路を生成することはできますか?

答えて

1

:あなたがコントロールして、より粒度をご希望の場合は、私は別の戦略を検討するAngular ui router passing data between states without URL

このレポートのアクセシビリティ。

おそらくあなたは、次の含まれている可能性があり、新たなデータベーステーブル作成することができ、あなたはで動作するようにデータベースを持っていると仮定すると:

  • 生成
  • 一時的な利用者のIDをトークンされますあなたの患者の詳細ページへのルーティングに使用されます
  • おそらく有効期限です。

    1. ユーザーIDおよび情報のサブセットを考えると、情報のハッシュを生成する(のIDが含まれています

は、あなたのボタンは、以下の操作を行う可能性があるWebサーバー上のAPIエンドポイントを呼び出す必要がありこのときの現在の列は、同じユーザーに対して生成された複数のリンクのハッシュの一意性を保証します)。これがトークンになります。

  • 有効期限を設定して、新しいデータベーステーブルにハッシュを格納します。
  • トークンを使用してクライアントの詳細ページにルーティングできるように、ハッシュ/トークンを使用してWebリクエストに応答します。
  • 次に、ユーザーがクライアントの詳細ページにリダイレクトされたときに、バックエンド(Webサーバー)を使用して有効期限やこれにアクセスするためのその他の制限事項をチェックできますページ。

    問題についての私の考え。

    +0

    ありがとうございます。これは私が探していたものです。 – user1828605

    0

    はいこれが可能です。それはあなたのバックエンドコードとjavascriptともっと関係があります。

    本質的に、あなたのIDを検証し、有効な表示メッセージである場合、サーバーにIDを検証させる必要があります。それが有効でない場合は、400または何かを返し、それらに無効なIDがあることを伝えます。有効であるかどうかを示す時間/使用列を使用してIDをデータストアに保持する必要があります。

    WebAPIの例を挙げます。

    app.controller('myCtrl', function($scope,$stateParams,patientService) { 
        if($stateParams.id != undefined) 
        { 
         patientService.Get($stateParams.id).then(function(success){ 
         $scope.Data = success; 
         }, 
         function(error) 
         { 
         //redirect or display cannot use this url message 
         } 
         }); 
    } 
    

    私は、これはあなたが探している答えであるかもしれないと考えているWebAPIの

    public HttpResponseMessage Get(string id) 
    { 
        //use business logic to validate ID 
        //if Id is valid return cool data 
    
        if (isValid(id)) 
        { 
          return request.CreateResponse(HttpStatusCode.OK,data); 
         } 
        return request.CreateResponse(HttpStatusCode.BadRequest); 
    } 
    
    関連する問題