我已经在一个域中托管了一个用 Flask 编写的 rest API,并且我在 azure app services 中的另一个域中托管了我的 react 应用程序。我可以使用用户名和密码成功登录系统。但是,当我尝试访问端点时,我得到None
了用户名属性(本地一切正常,没有任何问题)。
def login_required( f ):
@wraps(f)
def wrap( *args, **kwargs ):
project_owner = session.get( 'username' )
if project_owner is None:
logging.error( ERROR_MSG.LOGIN_ERROR_MSG )
return response.cannot_process_redirect( ERROR_MSG.LOGIN_ERROR_MSG, '/' )
else:
return f( *args, **kwargs )
return wrap
我想我已经应用了正确的 CORS 政策,但我无法让它发挥作用。应用的 CORS 配置如下。
app.config['CORS_HEADERS'] = 'Content-Type'
app.config['SESSION_COOKIE_HTTPONLY'] = False
CORS( app, supports_credentials = True, resources = {r"/api/*": {"origins": "http://domainA.net"}} )
端点的获取请求如下所示。
export function getUsers() {
const url = 'users/'
const requestOptions = {
method: 'GET',
credentials: 'include'
};
return ( dispatch ) => {
return fetchReq( requestOptions, url ).then( ([response, json]) => {
// Do something
} )
}
}
同样在 Azure 应用服务中,domainA
被添加到domainB
.
如果我使用 Postman,我可以毫无问题地使用端点。我注意到的一件事是我的请求和响应会话值字符串不同。下面是请求-响应标头的屏幕截图。