繁体   English   中英

如何清除 session 或使用 LinkedIn REST API 注销

[英]How do I clear a session or logout using the LinkedIn REST API

我目前正在编写一个程序,其中需要通过 LinkedIn REST API 对多个帐户进行身份验证。 这需要以相当快的速度连续完成,因为由于 LinkedIn 的令牌寿命相当短,必须一次重新连接多个帐户是很常见的。

问题是,在验证单个帐户后,我必须等待约 10 分钟让 session 过期,然后才能验证新用户。 当调用 API (liLogin) 时,它将作为现有 session 的一部分自动登录用户。

我相信这是 API 的有意功能,正如您在授权代码流文档的第 5 步中提到的那样。

其他需要注意的事项。 我尝试在另一个线程中提到的回调 URL 上添加一个随机字符串作为查询。 I've also noticed the Android SDK has a logout function but can't seem to locate anything for this within the REST API.

我已经在下面粘贴了我的代码部分来处理这个问题,以防万一这有帮助。

// Login
const liLogin = async (req, res) => {
    const URL = `https://www.linkedin.com/oauth/v2/authorization?client_id=${config.li.id}&redirect_uri=${config.li.redirectUri}&response_type=code&state=PostSchedulerCapture321&scope=r_liteprofile%20r_emailaddress%20w_member_social`;
    res.redirect(URL);
};

// Exchange temp token for access_token
const liGetUser = (req, res) => {
    let token = req.query.code;
    axios.get(`https://www.linkedin.com/oauth/v2/accessToken`, {
        params: {
            "grant_type": "authorization_code",
            "code": token,
            "redirect_uri": config.li.redirectUri,
            "client_id": config.li.id,
            "client_secret": config.li.secret
        }
    })
    .then(result => {
        return result.data.access_token;
    })
    .then(access_token => {
        axios.get('https://api.linkedin.com/v2/me', {
            'headers': {
                'Authorization': `Bearer ${access_token}`
            }
        })
        .then(result => {
            res.send(result.data)
        })
        .catch(err => {
            console.log(err);
        })
    })
    .catch(err => {
        err = {...err.config.headers, ...err.response.data};
        console.log(err);
    })
}

万一有人遇到这种情况,您只需将浏览器重定向到注销 URL ( https://linkedin.com/m/logout ),然后在几秒钟后使用 setTimeout 关闭 Z05B8C74CBD96FBF2DE4C1A354F。

不是一个理想的解决方案,但它有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM