I found the answer, facebook sdk's login dialog is getting blocked if you have in your header requests "Cross-Origin-Opener-Policy: same-origin". Maybe Chrome / your Backend setup is putting this by default, but 100% this is breaking the facebook popup and makes the login callback to trigger immediately with status: unknown.
So how i fixed it ( i have Django backend) is to create a middleware in Django that modifies the header.
```
class ModifyCrossOriginOpenerPolicyMiddleware:
"""
Changes the 'Cross-Origin-Opener-Policy' header to 'unsafe-none'
for specific routes (to enable FB login popup behavior).
"""
def __init__(self, get_response):
self.get_response = get_response
self.paths_to_modify = [
"/sell-now",
]
def __call__(self, request):
response = self.get_response(request)
for path in self.paths_to_modify:
if request.path.startswith(path):
# Set COOP to a value that does not block popups
response.headers["Cross-Origin-Opener-Policy"] = "unsafe-none"
break
return response
```
and then i added that middleware in the middleware variable in Django "
```
'dressingbee.middleware.ModifyCrossOriginOpenerPolicyMiddleware',
```
I found the answer, facebook sdk's login dialog is getting blocked if you have in your header requests "Cross-Origin-Opener-Policy: same-origin". Maybe Chrome / your Backend setup is putting this by default, but 100% this is breaking the facebook popup and makes the login callback to trigger immediately with status: unknown.
So how i fixed it ( i have Django backend) is to create a middleware in Django that modifies the header.
```
class ModifyCrossOriginOpenerPolicyMiddleware:
"""
Changes the 'Cross-Origin-Opener-Policy' header to 'unsafe-none'
for specific routes (to enable FB login popup behavior).
"""
def __init__(self, get_response):
self.get_response = get_response
self.paths_to_modify = [
"/sell-now",
]
def __call__(self, request):
response = self.get_response(request)
for path in self.paths_to_modify:
if request.path.startswith(path):
# Set COOP to a value that does not block popups
response.headers["Cross-Origin-Opener-Policy"] = "unsafe-none"
break
return response
```
and then i added that middleware in the middleware variable in Django "
```
'dressingbee.middleware.ModifyCrossOriginOpenerPolicyMiddleware',
```