gpt4 book ai didi

javascript - 在 SDK 请求方法中将 API session 身份验证 token 放在哪里?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:30 26 4
gpt4 key购买 nike

我正在使用 ConnectyCube React Native SDK 并使用他们的 API 获得了一个应用授权 token 。发出进一步请求时需要此 token - 例如以用户身份登录时。他们的documentation说:

升级 session token (用户登录)

如果您有一个应用程序 session token ,您可以通过调用登录方法将其升级为用户 session :

var userCredentials = {login: 'cubeuser', password: 'awesomepwd'};

ConnectyCube.login(userCredentials, function(error, user) {

});

问题是,当我使用此方法时,我收到一条错误消息,提示“需要 token ”。

如果我与 REST API 交互,我会将 token 放在请求的 header 中,但显然在这种情况下我不能。那么问题来了,我应该把 token 放在哪里?我有它,文档只是没有告诉你如何使用它!任何帮助表示赞赏。

最佳答案

好的,我想出了一个解决办法。首先,我只是尝试以与社交身份验证文档中相同的方式将身份验证 token 传递给 userCredntials 对象,这在我从他们的文档中获取的上述代码片段的描述中是缺失的。

然后我在一个异步函数中从 useEffect 中 promise API 调用,以确保一切都按正确的顺序发生,并且它有效:

export default function App() {

const createAppSession = () => {
return new Promise((resolve, reject) => {
ConnectyCube.createSession((error, session) => {
!error
? resolve(session.token)
: reject(error, '=====1=====');
});
})
}

const loginUser = (credentials) => {
return new Promise((resolve, reject) => {
ConnectyCube.login(credentials, ((error, user) => {
!error
? resolve(user)
: reject(error, '=====2=====');
}));
})
}

useEffect(() => {
const ccFunc = async () => {
ConnectyCube.init(...config)
const appSessionToken = await createAppSession();
const userCredentials = { login: 'xxxxx', password: 'xxxxxxx', keys: { token: appSessionToken } };
const user = await loginUser(userCredentials);
console.log(user);

}
ccFunc()
}, []);

关于javascript - 在 SDK 请求方法中将 API session 身份验证 token 放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com