asp.net - 编写我自己的自定义 OAuth 外部登录提供程序

标签 asp.net angularjs authentication oauth owin

我正在为我的工作开发登录界面。我需要实现对我们的一个应用程序的第 3 方登录,然后在本地存储中保存一个 token ,以便用户获得授权。

第三方应用程序相当于 Facebook、Twitter、LinkedIn 等。我有一些内部 API 方法和端点,我可以调用并传入用户名/密码以对我们的数据库进行身份验证。

问题:
有人可以指导我了解如何实现自定义外部登录提供程序吗?我看到了大量关于如何实现 facebook、twitter 等的文档。但没有一个用于自定义应用程序(例如您之前制作的应用程序)。

目前我正在使用这个演示:http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/ + https://github.com/tjoudeh/AngularJSAuthentication (来源)。我计划“撕掉” Google/FB 并插入我自己的自定义 3rd 方登录名。

关于如何实现这一点的任何建议?

最佳答案

“第 3 方”系统是您提到的现有身份验证 API。如果要使用基于 token 的方案,则需要在现有系统之前实现 token 管理层。该层将为 token 交换凭据(通过调用现有系统进行验证)。它还将负责验证已发行的代币。

您的代币层将负责保留已发行代币的列表,以供撤销之用。

您可以使用像 Kong 这样的开源解决方案,而不是从头开始实现这一层。还有各种插件。或者考虑一个SaaS产品,比如Stormpath ,它可以将 OAuth2 功能添加到您现有的 .Net 应用程序中。 (免责声明:我在 Stormpath 工作)。

我还写了以下文章,它们对理解整体 token 架构很有用:

Token Based Authentication for Single Page Apps (SPAs)

Build Secure User Interfaces Using JSON Web Tokens (JWTs)

希望这可以帮助!

关于asp.net - 编写我自己的自定义 OAuth 外部登录提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092903/

相关文章:

javascript - 在 ng-click 方法中单击时更改 anchor 标记的文本

python - Django:is_authenticated 和 is_anonymous 在注销后都返回 true

asp.net - 在 ASP.NET 项目中处理客户端上的 Less 文件

asp.net - 如何使用ASP.NET Repeater消除尾随逗号?

c# - 在应用程序中设置数据库的模式名称

c# - 为什么要使用序列化

javascript - 自动检查复选框列表

javascript - AngularJS 指令 - 编译不工作

asp.net-mvc - 将 MVC 的 AuthorizeAttribute 与多组角色一起使用?

azure - 如何在 Azure VM 中创建多个帐户?