通过 api,我可以强制用户登录到 reddit 吗?

Via the api, can I force the user to login to reddit?

我正在编写一个使用 OAuth 对用户进行身份验证的 Reddit 客户端。我想实现的功能之一是能够同时使用多个帐户。这要求用户在他们想要使用的每个帐户上授权我的客户。我 运行 遇到的问题是,如果用户已经在他们的浏览器中登录到 Reddit,当我弹出一个浏览器来执行身份验证时,它将让他们根据他们当前登录的用户对我的客户端进行身份验证。

有没有办法强制用户重新输入他们的凭据?我宁愿不必在我的添加帐户屏幕上放置某种免责声明 "Please log out of Reddit in any open browser windows"。

我尝试在 WebView 中打开 Reddit 登录页面,这样请求就被沙盒化了,虽然这样做有效,但它允许用户访问整个登录页面(包括导航到网站其他地方的所有链接)。当我弹出外部浏览器时,我不介意这种体验,但在嵌入式 WebView 中,我真的只想显示用户名和密码框以及 OAuth 验证提示。

注意:我确实有点喜欢嵌入式体验,因为它不会干扰用户现有的浏览器 cookie,我只是不喜欢这种登录页面的混乱程度,而且我不确定该怎么做防止用户离开登录。此外,为了完整起见,这是一个 UWP 应用程序,尽管这个问题在很大程度上与技术无关。

The problem I'm running into is that if the user is already logged into Reddit in their browser, when I pop a browser to perform the auth, it will have them authenticate my client against their currently logged in user.

可能是授权服务器问题。如果是这样,我们就不能在我们的客户端应用程序中做任何事情。

但如果不是服务器问题,在UWP中,有一个WebAuthenticationBroker class 可以帮助你授权你的应用从资源服务器访问用户信息通过获得令牌。你可以尝试使用class来实现OAuth授权。如果您可以在代码逻辑中使用令牌正确管理所有用户,则无需在 WebView 中使用,这样您就可以向多个用户授权您的应用程序。

查看 Web authentication broker topic and the sample 以了解更多详细信息。