質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Amazon DynamoDB

Amazon DynamoDBは、 AWS上のNoSQLデータベースサービスです。フルマネージド型のサービスで、スキーマレス、高速且つ安定性のある動作、自動的に容量を変更する自動スケーリングなどの特徴を持ちます。

Amazon Cognito

Amazon Cognitoは、Webアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をサポートするサービスです。ユーザー登録とサインインを行うか、FacebookやAmazon、Googleなどのサードパーティーを通じてサインインできる機能を提供します。

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

AWS Amplify

AWS Amplifyとは、AWSを用いたWebアプリケーション向けのJavaScriptライブラリです。サインアップ/サインイン、MFA、コンテンツ管理、さらにサーバーレスなバックエンドの自動構築などの実装が容易にできます。

Q&A

0回答

282閲覧

Graphqlを利用しCognito認証していなくても見れるテーブルと見れないテーブルを分けたい

yuuki4135

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Amazon DynamoDB

Amazon DynamoDBは、 AWS上のNoSQLデータベースサービスです。フルマネージド型のサービスで、スキーマレス、高速且つ安定性のある動作、自動的に容量を変更する自動スケーリングなどの特徴を持ちます。

Amazon Cognito

Amazon Cognitoは、Webアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をサポートするサービスです。ユーザー登録とサインインを行うか、FacebookやAmazon、Googleなどのサードパーティーを通じてサインインできる機能を提供します。

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

AWS Amplify

AWS Amplifyとは、AWSを用いたWebアプリケーション向けのJavaScriptライブラリです。サインアップ/サインイン、MFA、コンテンツ管理、さらにサーバーレスなバックエンドの自動構築などの実装が容易にできます。

0グッド

0クリップ

投稿2022/07/15 02:49

前提

Vue.jsでamplifyを利用し
チャットシステムを作成しています。

そこでCognito認証を利用し、GraphqlからDynamoDBのデータを操作しています。
Cognito認証が通ったユーザーではGraphql→DynamoDBのデータ取得、書き込みなどできているのですが、

認証が通っていない(ログインしていない)ユーザーで特定のテーブルのデータ取得、書き込みなどができず悩んでいます。

実現したいこと

・Cognito認証が通っていない状態でGraphqlの特定のテーブルのデータ取得、書き込み

発生している問題・エラーメッセージ

エラーメッセージ {data: {…}, errors: Array(1)} data: {listCHATS: null} errors: Array(1) 0: {message: 'Unauthorized', errorType: 'Unauthorized', data: {…}, errorInfo: {…}, path: Array(1), …} length: 1 [[Prototype]]: Array(0) [[Prototype]]: Object

該当のソースコード

graphqlスキーマファイル

type CHAT @model @auth(rules: [
{ allow: public, provider: iam, operations: [read, create] },
{ allow: owner, provider: userPools},
{ allow: private, provider: iam, operations: [read, create] }
]) {
id: ID!
room_id: String!
room_group: String!
user: String
message: String!
entry_key: String
entry_value: String
uuid: String
active: Int
}

クエリ部分
// CHATリスト取得

public async getListItems() {
const filter ={
"room_id": {
"eq": this.$route.params.id
},"room_group": {
"eq": this.$route.params.room_group
},
}
const result: any = await API.graphql({
query: queries.listCHATS,
variables: {filter : filter},
authMode: "AWS_IAM"
});
this.listItems = result.data.listCHATS.items;
}
}

ソースコード vue.js、typescript

試したこと

ここに問題に対して試したことを記載してください。
・スキーマファイルにIAM認証を許可するよう追加
・クエリ部分にAWS_IAM認証を行うように追記
・aws console上でcognitoの認証されていないIDのアクセスを有効にすると設定

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問