我已经阅读和阅读了几个月的所有这些,出于某种原因,它只是没有点击。我有一个用.NET编写的RESTful Web API,它位于api.domain.com网站上,domain.com是一个AngularJS SPA应用程序。
如果客户端上没有access_token(localStorage),我会将用户重定向到Google以通过OAuth 2进行身份验证,然后将其重定向回回调页面,我将access_token写入本地存储。
我现在正在努力的是,当我调用API并发送Bearer令牌时,如何让我的API识别它并验证用户身份以便我可以调用授权方法?
我想我在这里跑圈子,只需要一些坚实的方向。
身份验证端点:https://accounts.google.com/o/oauth2/v2/auth
范围:openid个人资料电子邮件
重定向(暂时):http://localhost/callback.html
Web API:http://api.domain.com
流量:隐含流量
SPA:http://localhost
令牌验证URI:https://www.googleapis.com/oauth2/v3/tokeninfo
用户进入http://localhost,角度应用检查本地存储中的access_token。如果检测到一个,它会调用令牌验证URI以确保它有效且未过期。在angular,via http拦截器中,任何发出该URI的请求都是Web API,它将access_token设置为授权头上的承载令牌。
我期望在这一点上发生的是我已经标记为授权的任何api方法,它现在允许通过User.Identity对象现在水合并返回200.
答案 0 :(得分:0)
这个精彩的演讲就在这里。
这篇很棒的文章就在这里。
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
与他在这里的最优秀的样本实施配对。
https://github.com/tjoudeh/AngularJSAuthentication
在我17年的职业生涯中经历了最长时间的研究之后,我找到了一个将这一切融合在一起的人。