首页 > 解决方案 > 反应原生图像组件得到 401,即使它已被授权

问题描述

我在尝试从我的 API 获取图像时遇到了一个非常奇怪的问题(Express with Passport using JWT strategy)。我试图加载图像的组件是这样的:

function ImagePreview(props) {
    const imageId = props.imageId;
    const [token, setToken] = useState(null);

    useEffect(() => {
        SecureStore.getItemAsync('accessToken').then(jwt => {
            setToken(JSON.parse(jwt));
        });
    },[]);

    return(
        <View>
            { !token ? <Text>Loading...</Text> : (
                <Image
                    style={styles.imagePreview}
                    source={{
                        uri: config.apiURI + "/media/" + imageId,
                        headers: { authorization: token }}
                    }
                />
            )}
        </View>
    )
}

但是,当我运行应用程序时,我的 API 上出现 401 错误,表明我无权使用该资源。您可能会认为这可能是因为我的令牌设置不正确,但即使我将有效令牌硬编码到 auth 标头中,我也会遇到同样的问题。另一个奇怪的事情是,我实际上有时会让它工作,但它(似乎)随机停止工作。当我使用 Postman 发出获取请求时,我从来没有遇到过这个问题。

标签: reactjsreact-nativeexpress

解决方案


推荐阅读