Closed1
Auth0でのGoの色々なこと
Auth0のチュートリアル通りに実装してもaudience処理が成功しない時や、複数audienceの読み込みをする際は以下のように実装する
// Verify 'aud' claim
aud := os.Getenv("AUTH0_IDENTIFIER")
// 複数のオーディエンスの場合、JWTトークンのオーディエンスを[] interface {}に変換します
convAud, ok := token.Claims.(jwt.MapClaims)["aud"].([]interface{})
if !ok {
// オーディエンスが1つしかない場合は、JWTトークンのオーディエンスを文字列に変換します
strAud, ok := token.Claims.(jwt.MapClaims)["aud"].(string)
// 文字列に変換できない場合はエラーを返します
if !ok {
return token, errors.New("Invalid audience.")
}
// オーディエンスが一致しない場合はエラーを返します
if strAud != aud {
return token, errors.New("Invalid audience.")
}
} else {
for _, v := range convAud {
if v == aud {
break
} else {
return token, errors.New("Invalid audience.")
}
}
}
このスクラップは2024/01/26にクローズされました