github / github/codespaces-rails
AuthenticityToken Missmatch on CRUD after Port Forwarding
- Ngôn ngữ chính
- Ruby
- Star
- 148
- Fork
- 121
- Merge trung bình
- 4 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 2
Mô tả
I am encountering forgery protection issue when I try to do regular CRUD operations that connected to postgres like normal, so everytime I did POST action, the console throws message below:
```
ActionController::InvalidAuthenticityToken (HTTP Origin header (http://localhost:3000) didn't match request.base_url (https://{space-name}-{space-id}-3000.app.github.dev)
```
So far, [this answer (22965)](https://github.com/rails/rails/issues/22965#issuecomment-172983268) can solve the problem, which suggest to add:
```ruby
config.action_controller.forgery_protection_origin_check = false
```
to _development.rb_, or put
```ruby
skip_forgery_protection
```
on _application_controller.rb_
I still feel uncomfortable with this approach since I can't do the rails standards, I've been doing this just fine in another IDE like **Gitpod** or **AWS Cloud9**, but it's just different here. I'm trying figuring out on the VM level try to modify nginx config until I realize that codespaces service might run inside a container LOL. I still think that this because I'm not sure how port forwarding works in this service, but if that's the reason, why I can still access the app only with GET requests?
Some help/ guidance from official team would be nice!
cc @joshaber @samruddhikhandale @bdmac
Hướng dẫn đóng góp
Hướng nghiên cứu
Start by reproducing the POST failure in the Codespaces port-forwarded app and inspect the development.rb and application_controller.rb options mentioned in the report. Compare the forwarded request origin with request.base_url and examine the nginx or container port-forwarding configuration; done means identifying the configuration mismatch and documenting a standards-compliant fix without disabling forgery protection.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- rails, ruby
- Lĩnh vực
- backend, infrastructure, security
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 30/100