Code Monkey home page Code Monkey logo

serverless-sample's Introduction

Serverless Framework Sample

Serverless FrameworkでCognitoを使ってユーザ管理するサンプル

(Alexaからユーザ個別の情報を取って来るシステムとして作成。Alexa側の処理はこちら)

環境構築手順(とりあえず動かしたい人向け)

事前準備

1. clone or zip展開

ローカルにcloneしたプロジェクトかzipを展開して配置します。以降の作業は、カレントディレクトリを(serverless-sample)とします

2. npm install(初回のみでOK)

$ npm install -g serverless
$ npm install
$ sls dynamodb install

3. 環境変数を設定

$ cp conf/config.sample.json conf/config.dev.json

conf/config.dev.jsonを修正します

  • REGION: リージョンを指定します
  • USER_POOL_ID: プールIDを指定します
  • CLIENT_ID: アプリクライアントIDを指定します
  • ONLY_API_GATEWAY: Amazon API Gatewayを直接使用する場合、true / Amazon CloudFront を組み合わせて使用する場合、false を指定します

https://cognito-idp.{`リージョン`}.amazonaws.com/{`プールID`}/.well-known/jwks.json にアクセスし、取得したJSONをconf/jwks.jsonとして保存してください

4. ローカルで実行

$ sls offline start

http://localhost:3000/ で参照できます(http://localhost:8000/shell/ にアクセスするとローカルのDynamoDBにアクセスできます)

5. デプロイ

$ sls deploy -v

コマンドの結果、

...
ServiceEndpoint: https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/dev
...

のように表示されるので、アクセスするとログイン画面が表示されます(Amazon CloudFrontを組み合わせて使用する場合は別途設定してください)

License

MIT

Copyright (c) 2017 Kazumune Katagiri

serverless-sample's People

Contributors

nemuzuka avatar

Stargazers

Takahiro Horike avatar

Watchers

James Cloos avatar  avatar

serverless-sample's Issues

データをCognito SyncからDynamoDBに変更する

Cognito SyncはWebブラウザやiOS端末のデータ同期に適しているが、AlexaからKickされたlambdaからデータを取得することができない(AccessTokenしか取得できない)為、永続化するにはDynamoDBでなければならない

自前でtokenチェックを組み込む

API GatewayのAuthorizerにCognito使うとID Tokenしか許可していないと思われるので、自前で処理を書く必要がある

  • ID Token
  • Access Token

正しければ通るように...

Sign-in処理を実装する

/top にアクセスする際

  • API Gateway で認証ずみのチェック
  • クライアント側でも認証ずみのチェック

を行う(いずれも認証されていない場合、ログインページに飛ばす)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.