AWS Amplifyを使うとモバイルアプリで簡単に認証機能を搭載できますが、Amplifyの対応していないAWSサービスを使わなければならない場面があったのでメモ。
AWS歴半年の初学者の備忘録ですので、誤り等あればご指摘いただけると幸いです。
前提
- Amplify CLIでプロジェクトに認証機能を追加している(参考:AWS AmplifyによるiOSアプリ開発入門(Part1))
- 対応するIDプールのIAMロールに必要なポリシーをアタッチしている
具体的には amplify-xxxx-yyyy-zzzz-authRole-idp のようなロール名です
実装
認証が必要なSDKの直前で以下を追記
let credentialsProvider = AWSMobileClient.default().getCredentialsProvider()
let configuration = AWSServiceConfiguration(region:.APNortheast1, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
動かないときは
- IDプールに対応するIAMロールで実行したいアクションが許可されているかを確認する。
-
AWSMobileClient.sharedInstance()~
としている箇所があればAWSMobileClient.default()~
と変更する。
前者のメソッドは今後は後者に移行されていくようです。