【问题标题】:Webapi authentication, using client side ouath onlyWeb Api 身份验证,仅使用客户端 oauth
【发布时间】:2014-05-19 23:29:24
【问题描述】:

仅使用 oauth 提供程序(FB 等)客户端(HTML5 /JS 手机应用程序)向 Webapi 进行身份验证。

这是一个棘手的问题, 所以我可以使用用户名和密码对我们的 webapi 进行身份验证,使用来自 HTML 客户端的 js,通过 HTTPS 将用户名和密码作为参数传递,我们可以将用户设置为已授权,以便他们可以访问其他控制器以进行数据库更新等,所以到目前为止,请多多包涵。

我可以使用 MVC 对 FB 进行身份验证并将用户设置为已授权。

我可以对 HTML 和 JS 客户端做同样的事情(万岁),现在我将如何授权控制器,好的,我从 FB 收到用户电子邮件,所以,任何人都可以通过它。假设我可以重定向到 MVC 页面(从客户端),然后以这种方式在控制器上设置身份验证,但这并不好(将用户发送到应用程序或弹出窗口)。

从客户端验证用户身份并同时安全地授权 webapi 控制器的最佳方法是什么,我是否必须将用户重定向到 mvc 页面并这样做,其他人如何处理电话应用程序/电话差距/英特尔 xdk ?

【问题讨论】:

  • 所以如果我从 JS api stackoverflow.com/questions/6126517/… 获取访问令牌并通过 HTTPS 将其发送到 webpai,然后使用 FB 图
  • 咳嗽......花了超过五分钟......所以如果我从 JS 获得访问令牌,通过 HTTPS 将其发送到 webapi,然后将其发送到 FB graph @987654322 @,从 web api 中,然后授权控制器((s)是安全的,也许......?
  • 身份验证只能在服务器端进行,您只能通过服务器验证您的身份。您遇到跨浏览器脚本的问题。此外,它也不安全。
  • 您可以对服务器端进行身份验证,并向 API 发出请求服务器端并将响应发送回浏览器。
  • 那么跨平台应用 XDK / Phonegap 是怎么做到的?

标签: c# javascript html asp.net-web-api facebook-oauth


【解决方案1】:

该方法显然是,例如 facebook,但任何 oauth 提供程序的过程都是相同的, 通过让用户登录/登录来获取访问令牌。 使用服务器 API 验证 Token 是真实的(在 FB 的案例图 API 中) 客户端愉快地登录,直到访问令牌过期。 过期时(默认为 2 小时),将用户重定向到再次登录,应用程序已知它应该在不再次登录的情况下进行身份验证,除非用户已撤销对您的应用程序的授权。

这是一个关于如何处理过期访问令牌的链接(示例是 PHP)

不完全优雅,但它就是这样,我认为它只适用于超级极客!

很抱歉回答我自己的问题

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 2015-03-18
    • 1970-01-01
    • 2017-09-03
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2020-12-16
    相关资源
    最近更新 更多