2017-06-23 31 views
0

私はこれがたくさん尋ねられていることを知っていて、私の問題にはあてはまらない多くの解決策を見てきました。ng-token-authとdeviseトークン認証確認リダイレクトURL

ng-token-authとdevise-token-authを使用してDeviseのビューを使用して確認メールを送信すると、確認メールリンクにはredirect_urlがなく、確認時にエラーページが表示されます成功する。

ng-token-auth設定で私が設定した:devise_token_auth.rbconfirmationSuccessUrl: 'http://localhost:8000/#!/login'

私も設定している:多くの他のソリューションで提案されているように、私も無駄に、ConfirmationsControllerオーバーライドすべてを試してみました config.default_confirm_success_url = 'http://localhost:8000/#!/login'

私はconfrimation_urlコールにredirect_urlを追加することによって、工夫ビューconfirmation_instructions.html.erbを編集することによって、周りに一時的な仕事を持っている:事前に

confirmation_url(@resource, redirect_url:'http://localhost:8000/#!/login', confirmation_token: @token)

おかげで、私は任意の追加を提供できるなら、私に知らせてください情報。

答えて

0

リンクは常にHTTP 406を送信しているので、オブジェクトには常にエラーがありますが、必ずしもメッセージではありません。当分の間、私のような確認コントローラをオーバーライドすることによって(醜い)ソリューション実装しました:

def show 
    self.resource = resource_class.confirm_by_token(params[:confirmation_token]) 
    yield resource if block_given? 

    if resource.errors.messages.empty? 
     set_flash_message!(:notice, :confirmed) 
     #respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) } 
     if signed_in?(resource_name) 
      #signed_in_root_path(root_path) 
      redirect_to root_path + '#!/users/' + resource.id.to_s 
     else 
      redirect_to root_path + '#!/login' 
     end 
    else 
     respond_with_navigational(resource.errors, status: :unprocessable_entity){ render :new } 
    end 
end 

をこれは、最悪の場合、ログインページにリダイレクトします。確認api呼び出しが実際に動作しているので、ユーザーはサインインできます。失敗した場合、確認メールを再送信しようとするというフラッシュメッセージを表示できます。

誰かが良い解決策を知っていたり、私が間違っていることを知っていたら、HTTP 406私に教えてください!

関連する問題