使用WebApi和外部登录的ASP.NET标识

 877762833_166d01 发布于 2023-02-04 11:58

我又被卡住了!我正在尝试使用个人帐户使用ASP.NET身份实现安全的WebApi服务.WebApi服务将由使用phonegap开发的移动应用程序使用.我的phonegap应用程序使用Facebook和Twitter进行登录,我已在客户端上完美地实现了这一点.

我已经从visual studio模板创建了一个SPA项目,我已经使用fiddler和chrome dev工具测试了监控HTTP请求的登录过程.我使用邮递员尝试了以下请求

得到: http://localhost:49577/api/Account/ExternalLogins?returnUrl=/&generateState=true

响应:

[{
        "Name": "Facebook",
        "Url": "/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49577%2F&state=jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01",
        "State": "jpePf27F3ufkCCEldFdoOVHSGBGTEO1CrRdUQ3bHEP01"
}]

然后我调用GET:http://localhost:49577/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49577%2F&state=jpePf27F3ufkCCEldFdoOVMEGBGTEO1CrRdUQ3bHEP01 调用AccountsController的GetExternalLogin方法.然后,当用户未经过身份验证时,它会返回ChallengeResult的实例.

这是我被困的地方.Q1:ChallengeResult强制301重定向到facebook登录页面,带有一些查询字符串参数.我不想要这个,我希望它给我参数,但让我处理我的ajax请求中的日志记录.我试过评论这行代码

Request.GetOwinContext().Authentication.Challenge(LoginProvider);

但我最终得到了401没有别的,我怎么能控制ChallegeResult的反应?

Q2.此外,在我从facebook获取访问令牌之后,我无法弄清楚接下来是什么,如果我已经获得访问令牌,我应该调用哪个webapi端点,我应该传递给它什么?

我整天都用Google搜索,但找不到任何能回答我问题的内容.任何帮助,将不胜感激.谢谢

更新:

关于Q2; 我已经想出了下一步,那就是GET:http://localhost:49164/signin-facebook?code=...&state=...

这将返回另一个重定向到的302

http://localhost:49164/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A49164%2F&state=7oGPd37EA-nmtXPtYEQ40qnretDeKjbPEM1gNkb2DuM1

然后返回另一个302然后重定向到

http://localhost:49164/#access_token=...

那么如何处理来自移动非浏览器客户端的所有重定向?

UPDATE

我试图找到处理的控制器动作 http://localhost:49164/signin-facebook?code=...&state=... 可以帮助任何人吗?

更新 我已经发布了这个问题了解了很多有关facebool登录流程的信息,这可能是我之前应该做的!我仍然有一个问题,但我在这里创建了一个不同的问题,以减少混乱

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有