使用DotNetOpenAuth获取FetchData?
我已经实现了这里描述的这个简单代码 (vs 2010,webforms)
protected void Page_Load(object sender, EventArgs e) { var openid = new OpenIdRelyingParty(); var response = openid.GetResponse(); if (response != null && response.Status == AuthenticationStatus.Authenticated) { FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false); } }
Click
function:
protected void btnGoogle_Click(object sender, ImageClickEventArgs e) { using (OpenIdRelyingParty openid = new OpenIdRelyingParty()) { var request = openid.CreateRequest("https://www.google.com/accounts/o8/id"); request.RedirectToProvider(); } }
问题#1
当我点击登录(通过谷歌)时,它会打开此同意屏幕 :
但是怎么运作呢? 我认为我必须在Google开发者控制台中创建一个API密钥才能允许用户登录。 ( 就像我在这里与myne->的其他应用程序一样 )
显然我没有创建任何 “ localhost
”应用程序。 那怎么样仍然有效? (这是我从互联网上下载的一个演示版)。
问题2
一旦我得到结果 :
如何获取用户数据? (例如电子邮件) {文章没有提到它}
nb DotNetOpenAuth ver 3.4.6.10357
该行有效,因为它使用openId而不是OAuth2。 开放id是Oauth2之前的老学校。
您还应该注意:
重要提示:Google已弃用OpenID 2.0,并会在迁移期后将其关闭。 如果您的应用使用OpenID 2.0,userinfo端点或OAuth 2.0登录(早期版本),则应按迁移时间表中给出的截止日期迁移您的应用。
由于OpenId已经折旧并将在2015年4月20日之前关闭,因此我不建议使用它进行开发。
要回答请求不需要客户端ID的问题,因为它的打开而不是Oauth2只需要oauth2需要客户端ID。
推荐: Google API客户端库教程: Google Oauth2 C#