AmplifyのAuthentication
tokenの更新とかも自動でやってくれる
github
どれ使えばいい?
webではこれ?
RNではこれ?
Browserの場合は、localStorageに
RNの場合は、AsyncStorageに
Sign Inした時に保尊され、Sign Outすると削除される
API
ログイン情報取得系
currentAuthenticatedUser
ログイン中のuser情報を取得
bypassCacheというoptionがある
どこから参照している?
localStorage?
例えば、前回のsigninから何分経っていたら期限が切れたりする?
currentSessionとの違いがいまいちわからん
currentSession
この中に、以下の3つが含まれている
currentCredentials
accessKeyIdやsecretAccessKeyなどを取得
currentUserCredentials
currentUserInfo
currentUserPoolUser
create user系
signUp
confirmSignUp
signUp時の認証
これで自動的にsign inさせるのは現状無理っぽい
userはコード認証をした後に、パスワードを入力しないといけない
resendSignUp
signIn系
signIn
confirmSignIn
SNS認証などのsignIn
federatedSignIn
SNS認証系のなんか
signOut
変更
changePassword
forgotPassword
登録しているメールアドレスにパスワードの再設定の認証コードを送信
forgotPasswordSubmit
パスワード忘れの変更に対してコード認証
updateUserAttributes
verifyCurrentUserAttributeSubmit
email変更に対してコード認証
verifyCurrentUserAttribute
verifyCurrentUserAttributeSubmitのコードの再送信
2段階認証系
getPreferredMFA
setPreferredMFA
setupTOTP
verifyTotpToken
disableSMS
enableSMS
completeNewPassword
configure
essentialCredentials
getMFAOptions
getModuleName
sendCustomChallengeAnswer
userAttributes
userSession
verifiedContact
verifyUserAttribute
verifyUserAttributeSubmit
localstorage
idToken
ユーザープールに格納されている情報を確認するのに必要なJWTトークン
accessToken
ユーザープールの情報の更新のために必要なJWTトークン
refreshToken
idTokenやaccessTokenの有効期限が切れた時に、新しいものを取得するために必要なトークン
clockDrift
LastAuthUser
現在ログインしている(=最後にログインした)ユーザーの、ユーザープール上でのID
userData
ユーザープールに登録されている情報
deviceKey
randomPasswordKey
deviceGroupKey
localstorageに保存している情報を見て、login状態にする方法
これ、signOutとか、引数無しでuser特定できるの何で?
どういう仕組み?
Login時の認証情報をaws側が管理している。たぶん
getCurrentUserで情報が取れる
delete userして、UserPoolからuserを消したい
code:ts
import { CognitoUser } from '@aws-amplify/auth';
export async function deleteUser() {
const user: CognitoUser = await Amplify.Auth.currentAuthenticatedUser();
await Amplify.Auth.signOut();
user.deleteUser(error => {
if (error) {
throw error;
}
});
}