我想在Google Developer Console中为本机应用程序注册一个自定义的redirect_uri(如pw.oauth2:/ oauth2redirect)(这是UWP应用程序的推荐方法)。根据{{3}},必须有一个选项来选择“自定义URI方案(Android,iOS,UWP)”,但我只会看到以下选项:
选择其他不允许我指定redirect_uri。
我应该如何为UWP应用注册自定义的redirect_uri?
如果我没有注册redirect_uri,则在OAuth授权过程中会收到redirect_uri_mismatch错误。
此github示例https://developers.google.com/identity/protocols/OAuth2InstalledApp#request-parameter-redirect_uri中的ClientID有效。看起来此ClientID是required_uri注册的。但是如何为我自己的ClientID实现相同的功能?
这个老问题讨论了类似的问题,但从未有人回答过: https://github.com/googlesamples/oauth-apps-for-windows/tree/master/OAuthUniversalApp
编辑: 澄清。我正在使用上面提到的Google示例(Google APIs for UWP not playing nice with custom redirect scheme)。它可与Google提供的硬编码ClientID一起使用。我只是无法使其与我自己的ClientID一起使用,因为我看不到在其开发者控制台中注册自己的redirect_uri的方法。
答案 0 :(得分:0)
两个想法:
您是否要在UWP中使用WebAuthenticationBroker
来提示用户登录?在这种情况下,您无法在UWP中自定义redirect_uri
...它必须从代表您的WebAuthenticationBroker.GetCurrentApplicationCallbackUri()
中获取
Package SID
...看起来像这样:ms-app://s-1-15-2-1374842229...
和
请确保您正确地编码和解码了redirect_uri-如果执行错误,它将不匹配。没有您的代码,很难说出您的操作方式。
WebUtility.UrlEncode(redirectURI);
答案 1 :(得分:0)
得到它(经过反复试验)。在Google Developer Console中,您需要创建iOS应用。在应用程序属性中,您需要在Bundle ID参数中指定URL方案(取自Visual Studio中UWP应用程序项目的包装清单/声明/协议/名称)。
AppStore ID和团队ID可以保留为空。
捆绑包ID用作URL方案。就我而言,我指定了 pw.oauth2 值(这是Google示例中的值)。然后我保存了更改,在Google UWP示例中设置了iOS应用的ClientID,发现现在一切正常。
Google控制台在iOS应用属性(例如 com.googleusercontent.apps.6284700xxxxx-6tp4d3xxxxx 之类的属性)中提供了 iOS URL方案参数。忽略UWP应用的此值。仅捆绑包ID很重要。