我有一个C#桌面应用程序,可以通过REST API调用对服务器(如果重要的话,使用框架2.5)起作用。 我想使用gmail帐户验证从客户端(桌面应用程序)到服务器的调用。 现在在显示流程之前,有一些澄清:
在客户端:
在服务器中:
如果可能的话 - 你会怎么做?
答案 0 :(得分:0)
您首先需要在Google API Manager上设置一个新项目(该内容Guid来自元标记下方的内容)。
在客户端,您可以使用Google's Sign-In button模板初始化登录信息&授予权限进程:
<meta name="google-signin-client_id" content="29chqvu3ghgtte1.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script>
<div id="google-signin-button"
class="g-signin2"
data-width="170"
data-height="30"
data-onsuccess="onSignIn"
data-onfailure="onSignInFailure">
</div>
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
var idToken = googleUser.getAuthResponse().id_token;
}
然后您只需将此idToken发送到server / api,您就可以在Google端点上进行GET验证此令牌https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={0}
。当然有numerous other ways,您可以在其中验证令牌(当然,实际上可以获得它的句柄)。
这将是它的要点(不包括非交互式用户登录 - 请记住,您还需要用户授予权限)。