Для связки акаунтов я бы предложил такую логику: пользователь логинится используя нового oAuth провайдера, для него создаётся новый акаунт. Во время логина система получает базовые данные пользователя (имя, фамилию, email). Нужно уведомить пользователя, что для него создан новый акаунт, но если он уже тут логинился под другим провайдером, то он может связать свой новый акаунт со старым. Если по совпадению имени + фамилии или email-у находится другой акаунт в системе тут же предлагается связать акаунты. Для подтверждения что тот акаунт принадлежит пользователю нужно залогиниться используя тот oAuth который он использовал раньше. Если пользователь не может это сделать, надо предоставить другой вариант, например указать ответ на секретный вопрос заданый на вашем сайте или вспомнить другие данные акаунта на ваше усмотрение, чтобы быть увереным, что это не однофамилец. Самый крайний случай — кнопка «сообщить в support» которая отправит сообщение администратору о том, что пользователь хочет связать два акаунта, чтобы это связку проверил и сделал человек.
С логинзой я не работал, однако по идее она должна прозрачно предоставлять все данные oAuth (в этом случае никаких проблем быть не должно). Если она сама выступает oAuth и не показывает данные акаунтов у других провайдеров oAuth через которые на ней логинились пользователи, то авторизацию стоит сделать по вышеописанному принципу, просто логинзу воспринимать как ещё одного провайдера oAuth и также искать совпадения в предоставленных пользователем данных.