開発実装 #15
Lunatic1998 さんが約1年前に更新
### 概要
Cogni
- 認可エンドポイント
- https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authorization-endpoint.html
- OpenID Connect (OIDC) 標準における認可エンドポイントの定義
- https://openid.net/specs/openid-connect-core-1_0.html#ImplicitAuthorizationEndpoint
### JWT
- aws-jwt-verify ライブラリを用いて、ユーザーがアプリに渡すトークンのパラメータを検証する。
- JWKS URI には、ユーザーのトークンに署名した秘密鍵に関する公開情報が含まれている。
- https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html
#### `lib/cognito_urls.rb`
```
def init(domain, region)
@base_oauth_uri = "https://%s.auth.%s.amazoncognito.com" % [domain, region]
@base_idp_uri = "https://cognito-idp.%s.amazonaws.com" % [region]
end
def jwks_uri(pool_id)
path = "/%s/.well-known/jwks.json" % [pool_id]
URI.join(@base_idp_uri, path).to_s
end
def refresh_token_uri
@base_idp_uri
end
def authorize_uri
URI.join(@base_oauth_uri, AUTHORIZE_PATH).to_s
end
def token_uri
URI.join(@base_oauth_uri, TOKEN_PATH).to_s
end
def login_uri(app_client_id, redirect_uri)
path = "%s?response_type=code&client_id=%s&redirect_uri=%s" %
[LOGIN_PATH, app_client_id, redirect_uri]
URI.join(@base_oauth_uri, path).to_s
end
def signup_uri(app_client_id, redirect_uri)
path = "%s?response_type=code&client_id=%s&redirect_uri=%s" %
[SIGNUP_PATH, app_client_id, redirect_uri]
URI.join(@base_oauth_uri, path).to_s
end
```