diff --git a/Assets/Scripts/API/ApiMethods.GlobalCommands.cs b/Assets/Scripts/API/ApiMethods.GlobalCommands.cs index 91bf48877..3e5a40c2d 100644 --- a/Assets/Scripts/API/ApiMethods.GlobalCommands.cs +++ b/Assets/Scripts/API/ApiMethods.GlobalCommands.cs @@ -51,7 +51,7 @@ public static void SaveAs(string filename) SketchControlsScript.m_Instance.IssueGlobalCommand(rEnum, 0, (int)SketchSetType.User, sParam: filename); } - [ApiEndpoint("icosa.login", "Login to the Icosa Gallery")] + [ApiEndpoint("icosa.login", "Login to the Icosa Gallery using a username and password")] public static void IcosaLogin(string username, string password) { var config = new Configuration(); @@ -77,6 +77,32 @@ public static void IcosaLogin(string username, string password) } } + [ApiEndpoint("icosa.devicelogin", "Login to the Icosa Gallery using a device code")] + public static void IcosaDeviceLogin(string code) + { + var config = new Configuration(); + var loginApi = new LoginApi(VrAssetService.m_Instance.IcosaApiRoot); + config.BasePath = VrAssetService.m_Instance.IcosaApiRoot; + loginApi.Configuration = config; + var token = loginApi.DeviceLoginLoginDeviceLoginPost(code); + App.Instance.IcosaToken = token.AccessToken; + + if (token != null) + { + var usersApi = new UsersApi(VrAssetService.m_Instance.IcosaApiRoot); + config = new Configuration { AccessToken = App.Instance.IcosaToken }; + config.BasePath = VrAssetService.m_Instance.IcosaApiRoot; + usersApi.Configuration = config; + var userData = usersApi.GetUsersMeUsersMeGet(); + + if (userData != null) + { + App.IcosaUserName = userData.Displayname; + App.IcosaUserId = userData.Id; + } + } + } + [ApiEndpoint("icosa.logout", "Logout of the Icosa Gallery")] public static void IcosaLogout() {