在社交媒体网站上使用REST进行身份验

时间:2014-01-20 10:54:36

标签: c# wcf web-services rest authentication

如果我正在设计一个Facebook / Twitter的社交媒体网站,用户可以浏览其他人的个人资料,创建出现在其他用户活动流等上的公开帖子,我想使用RESTful WCF进行设计服务器端的服务,前端有ASP MVC web,如何管理身份验证?由于没有会话状态,因此用户进行的每个请求都需要进行身份验证,以确认谁登录并发出每个请求。例如"搜索个人资料","查看个人资料","更新您自己的个人资料","将新照片上传到您的个人资料",&#34 ;发布公共信息","回复公共信息"是用户需要做的所有操作。

如果服务器没有状态,我假设必须在客户端浏览器中管理某些内容,但是如何防止欺骗,多个用户计算机等?

其次,在这种情况下如何使用REST管理会话生命周期,即如果您希望用户在没有活动10分钟后被迫重新进行身份验证,那将如何实现?

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是使用OAuth。 https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtAuthorization http://msdn.microsoft.com/en-us/library/dn277356.aspx

基本上,一旦进行登录调用,您将返回一个用于所有后续请求的身份验证令牌。所有API调用都将调用身份验证API以确保令牌有效。如果需要,您可以在设置的时间后在身份验证API处使此令牌过期。

为防止欺骗,所有通话都应通过https进行。

实施OAuth的一个优点是,您可以将身份验证移至其他提供商,例如google或facebook,这样您根本不需要在您的网站上存储用户凭据。