ruby-on-rails – 带有身份验证的Rails Web服务???用户登录??
发布时间:2020-12-17 01:19:52 所属栏目:百科 来源:网络整理
导读:任何想法我会怎么做有一个rails REST Web服务,用户只能获取,放置,发布,删除自己的数据?我使用Devise作为我的用户身份验证gem,但我不确定它是否以RESTful方式处理事情. 我如何确保用户“登录”并可以更改其数据?我是否必须在每个请求中传递某种令牌? 解决
任何想法我会怎么做有一个rails REST Web服务,用户只能获取,放置,发布,删除自己的数据?我使用Devise作为我的用户身份验证gem,但我不确定它是否以RESTful方式处理事情.
我如何确保用户“登录”并可以更改其数据?我是否必须在每个请求中传递某种令牌? 解决方法
Devise只会为您提供身份验证.这意味着您具有一定程度的确定性,即用户被识别并且他/她是谁/他是谁.根据这些信息,您可以使用Rails机制或其他Rails gem(即CanCan,Aegis,declarative_authorization)来授权用户和定义权限.
一个简单的方法是在您的控制器上使用before_filter,以确定,例如,BlogPost是否属于已登录的用户. 这是我的意思的一个简单例子: class BlogPostsController < ApplicationController before_filter :is_user_allowed,:only => [:edit,:delete,:show] # default Rails generated RESTful methods here def is_user_allowed if BlogPost.find(params[:id]).try(:user_id) != current_user.id redirect_to access_denied_page_path end end end is_user_allowed方法检索正在查询的BlogPost,并确定是否允许current_user通过比较用户ID来执行操作.如果不等式为真,那么它会重定向到我们臭名昭着的access_denied_pa??ge_path. 有关过滤器的更多信息,请参阅此Edge Guides article. 有关可以为您提供此功能的Rails宝石的更多信息(以及更多),请浏览Google并搜索rails授权.更重要的是,这里有一些应该提供一些见解的Railscast: > 192 – Authorization with CanCan (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |