我正在为我的工作开发一个登录界面.我需要实施第三方登录到我们的某个应用程序,然后将令牌保存在本地存储中,以便用户获得授权.
第三方应用程序将等同于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(来源).我打算’撕掉’谷歌/ FB并插入我自己的自定义第三方登录.
关于如何实现这一点的任何建议?
最佳答案 “第三方”系统是您提到的现有身份验证API.如果要使用基于令牌的方案,则需要在现有系统前实现令牌管理层.该层将交换凭证(通过调用现有系统进行验证)以获取令牌.它还将负责验证已签发的令牌.
您的令牌层将负责保留已颁发令牌的列表,以用于撤销目的.
您可以使用像Kong这样的开源解决方案,而不是从头开始实现这一层.或者考虑使用SaaS产品,例如Stormpath,它可以将OAuth2功能添加到现有的.Net应用程序中. (免责声明:我的工作时间是Stormpath).
我还编写了以下文章,这些文章对于理解整体令牌架构非常有用:
Token Based Authentication for Single Page Apps (SPAs)
Build Secure User Interfaces Using JSON Web Tokens (JWTs)
希望这可以帮助!