CommunityToolkit / CommunityToolkit/Graph-Controls

[Feature] Build a LoginButton control based on WebAccount metadata

Open
#126 0 comments 0 reactions 0 assignees View on GitHub
Area: Controls
Dominant language
C#
Stars
156
Forks
38
PR merge metrics
No merged PRs in 30d

Description

## Describe the problem this feature would solve

Currently, the LoginButton uses Graph to request the user display name and image. This returns an experience that is consistent across surfaces that also use Graph data, but not necessarily consistent with Windows. Apps/services on Windows desktop use the details provided by the WebAccount object returned by the Windows platform.

We should offer a solution that is more inline with what the OS is doing. Added bonus is that it doesn't require a Graph request, so the button can be written entirely with Windows APIs, without any additional steps or explicit web requests.

## Describe the solution

- In the `CommunityToolkit.Authentication.Uwp` package, create a new LoginButton based control
- Copy code where it makes sense, don't build on top of the existing LoginButton to avoid taking dependency on Graph
- Remove references to the Graph SDK and swap the Graph `User` object reference for `WebAccount` instead.
- Update the LoadState method to pull the WebAccount from an active WindowsProvider and load the username and photo.
- If the GlobalProvider is not an instance of WindowsProvider, disable the control.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.