- Add support for the OAuth Device Authorization Flow (RFC 8628) in the OpenAPI service, allowing devices with limited input capabilities to obtain authorization. - Implement `DeviceAuthorization()` and `AuthorizeDevice()` methods to handle device and user code generation, storage, and authorization. - Update the OAuth endpoints to include `/device/authorize` for user code authorization and fix the discovery endpoint path for device authorization. - Introduce MongoDB service in CI workflows for testing and enhance the unit test workflow with Redis setup. - Update Go module dependencies to include necessary packages for the new features. This commit significantly advances the OAuth capabilities of the application, enabling a more flexible authorization process for devices.
21 lines
344 B
Go
21 lines
344 B
Go
//go:build linux
|
|
|
|
package engine
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
func platformMachineID() (string, error) {
|
|
for _, path := range []string{"/etc/machine-id", "/var/lib/dbus/machine-id"} {
|
|
data, err := os.ReadFile(path)
|
|
if err == nil {
|
|
id := strings.TrimSpace(string(data))
|
|
if id != "" {
|
|
return id, nil
|
|
}
|
|
}
|
|
}
|
|
return "", nil
|
|
}
|