Webapi身份验证,仅使用客户端身份验证

问题描述:

仅使用oauth提供程序(FB等)客户端身份验证Webapi身份验证(HTML5/JS电话应用程序)。Webapi身份验证,仅使用客户端身份验证

这是一个棘手的一个, 这样我就可以使用用户名和密码,我们的WebAPI验证,使用JS从HTML客户端,通过用户名&密码作为参数通过HTTPS我们可以设置用户授权,使他们能够访问额外的数据库更新等控制器,迄今为止这么好,忍受着我。

我可以验证FB,使用MVC并将用户设置为授权。

我可以用HTML & JS客户端(hooray)来做同样的事情,现在我该如何授权控制器,好吧,我从FB获取用户邮件,所以任何人都可以通过。假设我可以重定向到MVC页面(从客户端),然后在控制器上设置auth,但这样做不好(将用户从应用程序或弹出窗口中发送出去)。

什么是从客户端认证用户并同时授权webapi控制器的最佳方法?是否必须将用户重定向到mvc页面,并且这样做,其他人如何处理此问题手机应用程序/手机差距/英特尔xdk?

+0

所以,如果我从JS API获得访问令牌http://stackoverflow.com/questions/6126517/retrieve-access-token-using-javascript-api并发送通过HTTPS到webpai,并使用FB图 – saj

+0

咳嗽....花了超过五分钟.....所以,如果我从JS获取访问令牌通过HTTPS发送到webapi,然后将其发送到FB图https://graph.facebook.com/me?access_token=YOUR_ACCESS_TOKEN,从web api中,然后授权控制器((s)是否安全,也许...? – saj

+0

认证只能在服务器端执行,你只有使用服务器验证身份您使用跨浏览器脚本编写问题也是不安全的 –

该方法显然是,示例Facebook,但过程是相同的任何oauth提供商, 获取用户登录/访问令牌。 使用服务器API验证令牌是否为真品(在FB的案例图API中) 客户端快乐地登录,直到访问令牌过期。 过期(2小时为默认值),重定向用户再次登录,应用程序已知应该进行身份验证而无需再次登录,除非用户已撤销对应用程序的授权。

这里是如何处理过期的访问令牌(例子是PHP)

不完全是优雅的一个环节,但它是什么,我认为这是唯一的超级怪才!

对不起,回答我的问题