SocketIO 身份验证和 ReactNative

问题描述 投票:0回答:2

我有一个带有连接的模块:

import { createContext } from 'react';
import SInfo from 'react-native-sensitive-info';
import io from 'socket.io-client';

export const socket = io('http://192...', {
    forceNew: true,
    auth: {
        token: 'eyJhbGciO...'
    },
});
export const SocketContext = createContext(undefined);

但是我的令牌是由 lib react-native-sensitive-info 保存的,我需要通过

获取它
await SInfo.getItem('token', {});

我的问题是:如何使用await获取导出套接字所需的令牌?

类似这样的:

export const socket = io('http://192...', {
    forceNew: true,
    auth: {
        token: await SInfo.getItem('token', {});
    },
});

提前致谢:D

react-native authentication socket.io
2个回答
0
投票

试试这个:

export const socket = async () => {
    const token = await SInfo.getItem('token', {});
    return io('http://192...', {
        forceNew: true,
        auth: {
            token,
        },
    });
}

export const createSocket = (token) => {
    return io('http://192...', {
        forceNew: true,
        auth: {
            token,
        },
    });
}

然后这样使用它:

const token = await SInfo.getItem('token', {});
const socket = createSocket(token)

0
投票

我尝试但失败了属性“on”在类型“() => Promise>”上不存在。

© www.soinside.com 2019 - 2024. All rights reserved.