Not Authorized to access XXXXXXX on type Query
amplify
How to resolve the error.
Not Authorized to access XXXXXXX on type Query
Operating environment
$ sw_vers
ProductName: macOS
ProductVersion: 11.6.5
BuildVersion: 20G527
$ node -v
v16.13.0
$ npm list -g
├── @aws-amplify/cli@9.1.0
├── npm@8.1.0
Conclusion
以下のように、authMode: 'AWS_IAM’に変更したらエラーが解消しました。
const res: any = await API.graphql({
query: gqlQueries.listTodos,
authMode: 'AWS_IAM'
})
修正前のエラーが出ていたコードは以下の通りです。AMAZON_COGNITO_USER_POOLSにしていました。
const res: any = await API.graphql({
query: gqlQueries.listTodos,
authMode: 'AMAZON_COGNITO_USER_POOLS'
})
amplifyのapiの設定について、まだ経験が少ないので、backendのapiの設定を正しく変更すれば良いのかもしれないですが、amplifyはそこらへんの内容がわかりづらいです。また、ピンポイントで参考になるサイトが現在(2022年時点)でも見つけづらい状況なので、とりあえず解消した段階での記録を備忘のために書きました。
以下のコードでも大丈夫でした。
const res: any = await API.graphql(graphqlOperation(gqlQueries.listTodos))
Amplifyでの認証方式の設定にエラーの原因がありそうだと思います。CognitoかAPI Keyかを選択するところで、正しい設定をすることで今回のエラーを解消するのが、正しい答えだと思います。しかし、ここら辺のAmplifyの設定は、トライ&エラーで理解していくしかなさそうです。
POST https://cognito-identity.ap-northeast-1.amazonaws.com/ 400 fetch-http-handler.js?3f03:45
ログインしていない場合に、chrome 開発consoleに、このようなエラーが表示されます。400は不正リクエストのことです。ログインをすると、表示されなくなるので、そのままにしています。
コードの全体
pages/components/UserListSample.tsx というパスとファイルです。
import { useState, useEffect } from 'react';
import API, { graphqlOperation } from '@aws-amplify/api';
import * as gqlQueries from '../../src/graphql/queries';
const UserListSample: React.FC = () => {
const [todos, setTodos] = useState<any>({})
const getTodo = async() => {
try {
const res: any = await API.graphql(graphqlOperation(gqlQueries.listTodos))
console.log("res ... " + JSON.stringify(res))
//setTodos(res.data.listTodos.items)
} catch (e) {
console.log("エラー")
console.log(e)
}
}
getTodo()
return (
<div>
ああああああ
</div>
);
}
export default UserListSample;
関連記事

amplifyのコンソールからアプリが削除できない場合
トラブルのケース その1 AWS Amplifyのアプリを削除しようと、アクショ ...

amplifyで dynamodbの運用方法のメモ()
amplify push でschema.graphqlのファイルでエラー am ...

amplify ビルド時のエラー
git clone した後に、npm run buildした際に以下のようなエラ ...

amplifyメモ
amplify push と amplify publish の違い ampli ...

amplifyとcognitoの関係メモ
amplify studioのUser management > Auth ...