ピースペース

SPAが使用するAPIを要Tokenに修正したら…

leave a comment »

VS2015のSPAテンプレート(with knockout.js)をパクッてSPAなページを作成している。
面倒そうなので、当面はアクセスするWebAPIの[Authorize]属性はなしにする。
だいたい動くようになってきたので、
OAuth Authentication Serverを有効にする構成を追加して、
apiコントローラに[Authorize]属性を追加する。

SPAの場合、既にAuthenticatedなので、
アクセストークンを取得するのは /Tokenからではなく、
SPAテンプレートでは、そのために/Account/Authorizeアクションが用意されている。
にアクセスしてTokenを取得してからapiにアクセスすることになる。らしい。
このあたりの手順、コードがちょっとトリッキーで、まともな説明もないため、
オラSPAに適用するのに手間取った。

テンプレートのデモSPAは当然、正常に動作するのだが…
/Account/Authorizeにアクセスしたあと、なぜか/Homeに戻ってしまうようになる。
なんで!?? ←が、わからない

これは、SPAテンプレートのデモが、/Home/Indexに格納されているためで、
以外のページでホストする場合は、それなりに対応する必要があるのだ。
修正が必要な個所は、
app.viewmodel.jsのwindow.location = "/Account/Authorize~ の部分と、
ApplicationOAuthProviderのValidateClientRedirectUriメソッドになる。
たぶん。

う~みゅ これをするには、
ApplicationOAuthProviderがなにで?ValidateClientRedirectUriはなにか?
を知らなくちゃならないわけで、
/Account/Authorizeの中のコードについても理解できてる必要がある。
に必要な説明になかなかたどりつけないので、
このSPAテンプレートは、おそらく誰も使用しない。よーな気がするっぺ

Written by nasu38yen

2016年9月1日 @ 11:59 午前

カテゴリー: .NET

Tagged with

コメントを残す