Да, конечная точка одинакова для каждого уникального устройства, электронной почты и т. Д. Она должна быть одинаковой, чтобы Amazon знал, куда отправлять push-уведомления, например, если вы запускаете целевую кампанию. Если пользователь убивает и перезапускает приложение, то используется та же конечная точка. Это касается как аутентифицированных, так и не аутентифицированных пользователей. Таким образом, у меня была бы причина полагать, что, если текущий сеанс заканчивается (то есть пользователь должен пройти повторную проверку подлинности), тогда они имеют одинаковую конечную точку. Это имеет смысл, потому что каждое устройство (само устройство) нуждается в уникальном идентификаторе. Чтобы лучше ответить на ваш вопрос, я лично проверил нижеприведенное и подтвердил:
Если один пользователь выходит из системы, а другой - в [на том же устройстве], идентификатор конечной точки остается прежним. Назначение приведенного ниже кода регистрирует идентификатор пользователя с определенной конечной точкой. Вы также можете изменить приведенный ниже код для печати идентификатора конечной точки, как вы и просили.
Поместите это в верхнюю часть вашего AppDelegate, предполагая, что вы используете Swift и AWS Cognito для аутентификации пользователя:
var pinpoint: AWSPinpoint?
... в didFinishLaunching, поместите это:
self.pinpoint = AWSPinpoint(configuration:AWSPinpointConfiguration.defaultPinpointConfiguration(launchOptions: launchOptions))
if let targetingClient = pinpoint?.targetingClient {
if let username = AppDelegate.defaultUserPool().currentUser()?.username {
let endpoint = targetingClient.currentEndpointProfile()
// Create a user and set its userId property
let user = AWSPinpointEndpointProfileUser()
user.userId = username
// Assign the user to the endpoint
endpoint.user = user
// Update the endpoint with the targeting client
targetingClient.update(endpoint)
print("Assigned user ID \(user.userId ?? "nil") to endpoint \(endpoint.endpointId).\n")
}
}