Auto auth if no password is required

Next step in password deprecation
This commit is contained in:
J. Nick Koston 2025-07-11 09:20:42 -10:00
parent bef20b60d0
commit e148c22f25
No known key found for this signature in database

View File

@ -1433,7 +1433,36 @@ HelloResponse APIConnection::hello(const HelloRequest &msg) {
resp.server_info = App.get_name() + " (esphome v" ESPHOME_VERSION ")";
resp.name = App.get_name();
this->flags_.connection_state = static_cast<uint8_t>(ConnectionState::CONNECTED);
// Auto-authenticate if no password is required
#ifdef USE_API_PASSWORD
if (!this->parent_->uses_password()) {
this->flags_.connection_state = static_cast<uint8_t>(ConnectionState::AUTHENTICATED);
ESP_LOGD(TAG, "%s connected (no password)", this->get_client_combined_info().c_str());
#ifdef USE_API_CLIENT_CONNECTED_TRIGGER
this->parent_->get_client_connected_trigger()->trigger(this->client_info_, this->client_peername_);
#endif
#ifdef USE_HOMEASSISTANT_TIME
if (homeassistant::global_homeassistant_time != nullptr) {
this->send_time_request();
}
#endif
} else {
this->flags_.connection_state = static_cast<uint8_t>(ConnectionState::CONNECTED);
}
#else
// No password support compiled in, always authenticate
this->flags_.connection_state = static_cast<uint8_t>(ConnectionState::AUTHENTICATED);
ESP_LOGD(TAG, "%s connected (no password)", this->get_client_combined_info().c_str());
#ifdef USE_API_CLIENT_CONNECTED_TRIGGER
this->parent_->get_client_connected_trigger()->trigger(this->client_info_, this->client_peername_);
#endif
#ifdef USE_HOMEASSISTANT_TIME
if (homeassistant::global_homeassistant_time != nullptr) {
this->send_time_request();
}
#endif
#endif
return resp;
}
ConnectResponse APIConnection::connect(const ConnectRequest &msg) {