If I walk user through connection flow, but there's already connection for this user and provider, DuplicateConnectionException is thrown and an old connection isn't replaced with a new one.
This becomes real problem when the old connection is actually expired and so it must be replaced with a new one.
I must therefore invent some additional logic to first remove the old connection, and then add the new one. I must go to this trouble, while there exists perfectly capable updateConnection() method in ConnectionRepository.
I propose changing ConnectController, so it will update existing connection on oauth success callback if such connection already exists and create a new one otherwise.
If I walk user through connection flow, but there's already connection for this user and provider, DuplicateConnectionException is thrown and an old connection isn't replaced with a new one. This becomes real problem when the old connection is actually expired and so it must be replaced with a new one. I must therefore invent some additional logic to first remove the old connection, and then add the new one. I must go to this trouble, while there exists perfectly capable updateConnection() method in ConnectionRepository.
I propose changing ConnectController, so it will update existing connection on oauth success callback if such connection already exists and create a new one otherwise.