月間29,000PV達成! 収益は毎日発生中! ギランバレー症候群に関する情報を集めています

「A client attempted to write unauthorized attribute」エラー対処法!

             
  • 2019.01.29
  • AWS
「A client attempted to write unauthorized attribute」エラー対処法!
Advertisement

 

Angular×Cognitoでサインアップの処理を書いている時に、

A client attempted to write unauthorized attribute

というエラーが出ました。

僕の場合はクソしょうもないことが原因でしたが、一応備忘録として書いておこうと思います。

 

 

「A client attempted to write unauthorized attribute」とは

翻訳すると、「クライアントが不正な属性を書き込もうとしました。」です。

つまり、Cognitoの属性に対して、書き込み権限がないということですね。

 

 

Cognitoの属性って?

属性

「ユーザプール」⇒「属性」を押すと、上記のような画面が表示されます。

属性は、Cognitoユーザ登録時に設定したい値のことです。

つまり、認証に使うものではなく、あくまでユーザ作成時に登録させたいものを指します。

※「email」にはデフォルトでチェックが入っています。

 

 

Cognitoの属性に対する書き込み権限とは?

属性の書き込み権限

「ユーザプール」⇒「アプリクライアント」⇒「属性の読み込みおよび書き込みアクセス権限を設定する」で、上記の画面が表示されます。

ここで属性の書き込み権限を設定できます。

が、僕はここにチェックを入れていたので、エラーの対処法としては不適切でした。

 

 

Advertisement

 

で、エラーの原因は?

ここで一度冷静になってみました。

属性の権限は確実に付与されているので、そもそも属性の指定が間違っているのではないかと思ったのです。

つまり、Cognitoに存在しない属性を間違って指定しているのではないかと。

ということで、ソースコードを再度確認してみました。

 

 

間違いのあるソースコード

見て分かる通り、9行目の「email」が「emali」になっています。

クソみたいな間違いですが、これが原因でエラーが出ていました。

 

■ソースコードは以下から拝借。

URL:「https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html」

 

 

まとめ

しょうもない原因でしたが、1時間くらいハマってしまいました。

冷静に考えれば分かるものなので、落ち着いて対処しないとだめですね。

ではまた!

Travelerを知らないの?