# Authentication

認証と認可を制御するにはどうすればよいですか。

これは、いくつかのスニペットに詰め込むのが非常に複雑な問題です。しかし、これはこの問題に取り組む方法についてのアイデアを提供するはずです。この例では JWT (opens new window)を使用していますが、この概念はセッションやその他のスキームにも同様に適用できます。

    $ curl localhost:9999/secret -i
    HTTP/1.1 401 Unauthorized
    content-length: 21
    connection: keep-alive
    content-type: text/plain; charset=utf-8
    あなたは許可されていません。
    $ curl localhost:9999/login -X POST                                                                                                                                                                               7 ↵
    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.e30.rjxS7ztIGt5tpiRWS8BGLUqjQFca4QOetHcZTi061DE
    $ curl localhost:9999/secret -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.e30.rjxS7ztIGt5tpiRWS8BGLUqjQFca4QOetHcZTi061DE"
    HTTP/1.1 200 OK
    content-length: 29
    connection: keep-alive
    content-type: text/plain; charset=utf-8
    To go fast, you must be fast.
    $ curl localhost:9999/secret -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.e30.BAD"                                        
    HTTP/1.1 401 Unauthorized
    content-length: 21
    connection: keep-alive
    content-type: text/plain; charset=utf-8
    You are unauthorized.
    

    また、コミュニティからいくつかのリソースをチェックアウトします。

    MIT Licensed
    Copyright © 2018-present Sanic Community Organization

    ~ Made with ❤️ and ☕️ ~