認証
● API KeyとToken認証の2種類
○ API KeyはMomentoコンソールで発行
○ Tokenはコードで権限、有効期限指定して生成
● 中身はbase endpointとJSON Web Token (JWT)
Momento
const permissions = {
permissions: [
{role: CacheRole.ReadWrite, cache: {name: 'myCache'}},
{
role: TopicRole.PublishSubscribe,
cache: 'myCache',
topic: 'myTopic',
},
{
role: TopicRole.SubscribeOnly,
cache: 'myCache',
topic: 'myTopic',
},
],
};
const [scopedToken, scopedRefreshToken] = await
generateApiKey(mainAuthClient, permissions, 3600);
権限と有効期限を指定したトークン生成
JWTの中を覗く
{
"endpoint": "cell-ap-northeast-1-1.prod.a.momentohq.com",
"api_key":
"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ5b2thd2FzYUBnbWFpbC5jb20i
LCJ2ZXIiOjEsInAiOiJFazBLRVFvUENBRWFDUW9IYlhsRFlXTm9aU0l
BQ2dnS0JSZ0NFZ0FpQUFva0VpSUlBUm9RQ2c1MGFHVXRaM0ps
WVhRdGQyRnNiQ29NQ2dwb2FXZG9iR2xuYUhSekNnZ1NCZ2dDR
WdBaUFBPT0iLCJleHAiOjE3MDMyMDEyOTR9.Ws9j8GZ9WnYgwt7
XWHfu1h5XaM2H2iUoT3GPTKTrW-Y"
}
Base64 decode
{
"sub": "
[email protected]",
"ver": 1,
"p":
"Ek0KEQoPCAEaCQoHbXlDYWNoZSIACggKBggCEgAiAAokEiIIARo
QXg50aGUtZ3JlYXQtd2FsbCoMCgpoaWdobGlnaHRzCggSBggCEg
AiAX==",
"exp": 1703201294
}
Base64 URL decode
JWT payload