ASP.NET Web APIで認証機能付きのAPIを作成する。
4044 ワード
ASP.NET Web APIで認証機能付きのAPIを作成
ここに詳細に書かれていました。
Secure a Web API with Individual Accounts and Local Login in ASP.NET Web API 2.2
上記の記事を見れば完璧です。自分が動作確認で行ったことを補足的に記載します。
動作確認
記事に書かれていた内容をもとに動作確認してみました。
1.上記サイトからソースをダウンロードし、ローカルでビルドする。
詳細は省きます。
2.アプリケーションを立ち上げ、適当なメールアドレスでユーザーを作成する。
3.ログイン処理(access_tokenを発行してもらう。)
サンプル画面にてログインして、APIをCallしても良いが、分かりやすい様にcurlでCallしてみた。
$ curl -k https://localhost:44305/token -X POST --data 'grant_type=password&[email protected]&password=Password1!'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 731 100 667 100 64 2245 215 --:--:-- --:--:-- --:--:-- 2245
{
"access_token":"-R6uUYvuby5ztGaIiYkIy5S3mQCtqYukU...", # 発行されたaccess_token
"token_type":"bearer",
"expires_in":1209599,
"userName":"[email protected]",
".issued":"Thu, 01 Dec 2016 00:51:33 GMT",
".expires":"Thu, 15 Dec 2016 00:51:33 GMT"
}
4. ヘッダーに発行されたaccess_tokenをセットして、APIをCallする。
$ curl -k https://localhost:44305/api/values -X GET -H 'Authorization: Bearer -R6uUYvuby5ztGaIiYkIy5S3mQCtqYukU...'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 25 100 25 0 0 123 0 --:--:-- --:--:-- --:--:-- 123
"Hello, [email protected]." # APIから返却された値。
上記の様になる。
なお、access_tokenの値が誤っていた場合は、以下の通り処理が行われない。
$ curl -k https://localhost:44305/api/values -X GET -H 'Authorization: Bearer -R6uUYvuby5ztrerewGaIiYkIy5S3mQCtqYukU...'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 61 100 61 0 0 279 0 --:--:-- --:--:-- --:--:-- 300
{"Message":"Authorization has been denied for this request."}
これでOKだと思う。
Author And Source
この問題について(ASP.NET Web APIで認証機能付きのAPIを作成する。), 我々は、より多くの情報をここで見つけました https://qiita.com/piromaru/items/fb881f529dc7762d8da0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .