我在我的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_reviewer
或current_user
要遵循的步骤和代码:
current_user
发送POST请求(正文参数包括有效的密码和电子邮件)。 Response = 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