如何通过Rails API使用不同的用户“类型”(例如Customer,ProductReviewer)(使用Knock jwt)

时间:2019-08-17 11:15:29

标签: authentication jwt rails-api jwt-auth

我在我的Rails API应用中使用Knock进行jwt身份验证。

我有3种类型的用户。
1)管理员-我正在使用ActiveAdmin,并且已使用devise设置了admin(并且工作正常)
2)用户-这是我的标准客户,请访问我的网站
3)审阅者-这将是该网站的雇员,并将审阅可以访问用户不会访问的内容的内容(例如,撰写评论和评分)。

我希望能够区分用户和ProductReviewer。

我尝试设置单独的@FormUrlEncoded @POST("/EducationApi.asmx/insertEducationAPI") public void insertEducationDetail(@Field("user_id") int user_id, @Field("degree_name") String degree_name, @Field("institute_name") String institute_name, @Field("board_university_name") String board_university_name, @Field("year_of_passing") int year_of_passing, @Field("percentage_cgpa") float percentage_cgpa, @Field("specialization") String specialization, Callback<Education> callback); user_token_controller

问题是,当我向邮递员发出get http请求(从邮递员那里),而不是向审阅者或用户返回带有jwt的数据时,我可以从控制器访问reviewer_token_controller和{ {1}}对我来说没有任何意义。我期望只能根据使用的jwt(从登录审阅者或用户获得的jwt)访问current_product_reviewercurrent_user

要遵循的步骤和代码:

  1. current_user发送POST请求(正文参数包括有效的密码和电子邮件)。

Response = jwt令牌。

  1. 包含来自上方的jwt令牌到current_reviewer的请求

路线

http://localhost:3000/api/reviewer_token

审阅者控制器

http://localhost:3000/api/reviewers

似乎在我发出请求时,它正在搜索用户以及审阅者,我希望它仅搜索并显示Rails.application.routes.draw do devise_for :admin_users, ActiveAdmin::Devise.config ActiveAdmin.routes(self) scope '/api' do resources :reviewers resources :users post 'user_token' => 'user_token#create' post 'reviewer_token' => 'reviewer_token#create' post 'find_user' => 'users#find' end end

0 个答案:

没有答案