我已经阅读和阅读了几个月的所有这些,出于某种原因,它只是没有点击 . 我有一个用.NET编写的RESTful Web API,它位于api.domain.com网站上,domain.com是一个AngularJS SPA应用程序 .
如果客户端上没有access_token(localStorage),我会将用户重定向到Google以通过OAuth 2进行身份验证,然后将其重定向回回调页面,我将access_token写入本地存储 .
我现在正在努力的是,当我调用API并发送Bearer令牌时,如何让我的API识别它并验证用户以便我可以调用授权方法?
我想我在这里跑圈子,只需要一些坚实的方向 .
身份验证 endpoints :https://accounts.google.com/o/oauth2/v2/auth
范围:openid Profiles 电子邮件
重定向(暂时):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 .
1 回答
这个精彩的演讲就在这里 .
https://speakerdeck.com/developerinfra/authentication-using-tokens-for-angularjs-owin-asp-dot-net-web-api-and-identity
这篇很棒的文章就在这里 .
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
与他在这里的最优秀的示例实现配对 .
https://github.com/tjoudeh/AngularJSAuthentication
经过我17年职业生涯中最长的研究工作之一,我发现了一个将这一切融合在一起的人 .