2012-05-31 6 views
0

나는 테스트 응용 프로그램을 설치하고 인증 처리를 위해 장치를 설정했으며, 제대로 작동 한 후 프로필 작성 페이지로 보내지는 구성 요소를 설정했습니다.개발자 및 사용자 프로필

http://localhost:3000/profiles/1/edit 

내가 가지고있는 문제는 어떻게 - 로그인 한 사용자 A가 다음 쿼리 문자열을 변경하고 다른 사용자가 데이터에 접근 할 수가있어 쉽게이다 프로파일에 편집로 전환 될 때

내가 가진 문제는 데이터를 편집 할 수 있도록 현재 사용자에게만 이것을 고정합니까?

로비

답변

1

나는 before_filter 갈 것입니다.

# in profiles controller 
class ProfilesController < ApplicationController 

    before_filter :find_profile 
    before_filter :check_if_authorized 

    def find_profile 
    @profile = Profile.find(params[:id]) 
    end 

    def check_if_authorized 
    render :status => 404 and return unless current_user == @profile.user 
    end 

end 

가정 :

  • 유증 모델의 이름은 User
  • 사용자가 하나의 프로파일은 사용자가
1

에 로그인 한 경우 이미 확인하고

  • 당신은 사용할 수 있습니다 더 정확하고 안전한 인증을 위해 세션과 함께 토큰 인증.

    모델에 devise : token_authenticatable을 추가하십시오. 사용자 그러면 사용자가 생성 될 때마다 사용자 인증 테이블 필드 필드에 인증 토큰이 작성됩니다.

    그런 다음 before_filter 갈 :

    def verify_auth_token 
        if current_user.authentication_token == params[:auth_token] 
        return true 
        else 
        return false 
        end 
    end 
    

    는 또한 편집 요청이 HTTP해야 verify_auth_token : ///는/1/편집 AUTH_TOKEN = 12wqaasaeaad

    프로필
  • 관련 문제