diff --git a/server/api.go b/server/api.go
index 9f2e47770746a078f3c27a66515605a70f2b1412..5560c3bccbd5bfa27a1090a12b88d41f55eb8cd4 100644
--- a/server/api.go
+++ b/server/api.go
@@ -50,7 +50,7 @@ func (d dexAPI) CreateClient(ctx context.Context, req *api.CreateClientReq) (*ap
 	if req.Client.Id == "" {
 		req.Client.Id = storage.NewID()
 	}
-	if req.Client.Secret == "" {
+	if req.Client.Secret == "" && !req.Client.Public {
 		req.Client.Secret = storage.NewID() + storage.NewID()
 	}