在auth0中获取accessToken [英] Get accessToken in auth0

查看:69
本文介绍了在auth0中获取accessToken的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 auth0 nextJS .

我接下来要做的是:当用户添加其凭据并登录时,他将被重定向到 callback API.

还有这里

 从'../../utils/auth0'导入auth0;导出默认的异步函数回调(req,res){尝试 {等待auth0.handleCallback(req,res,{redirectTo:'/'});} catch(错误){console.error(错误);res.status(error.status || 400).end(error.message);}} 

我想根据令牌重定向用户.
解码令牌,如果应用程序是简单用户或管理员,我将获取数据.

如果他是管理员,则应将他重定向到管理页面(如果不是用户页面,则应重定向到该页面).

所以我做了这样的事情:

 从'../../utils/auth0'导入auth0;导出默认的异步函数回调(req,res){const tokenCache = auth0.tokenCache(req,res);const {accessToken} =等待tokenCache.getAccessToken();console.log(accessToken)尝试 {等待auth0.handleCallback(req,res,{redirectTo:'/'});} catch(错误){console.error(错误);res.status(error.status || 400).end(error.message);}} 

因此,我想在此函数中获取令牌,以便能够重定向不同页面上的用户,但是如果要在此处获取令牌,则会出现问题:

用户没有有效的会话.

如果我删除了与令牌相关的代码,则会重定向用户,但是我需要在此处获取令牌才能进行用户检查.

如何在此 callback 函数中获取令牌并实现我上面描述的内容?

解决方案

使用

不过,请记住,通常您应该 解决方案

Using v1.2.0 of the nextjs-auth0 library, you can access the identity token during the callback handler.

import { handleAuth, handleLogin, handleCallback } from '@auth0/nextjs-auth0';

const afterCallback = (req, res, session, state) => {
    console.log(session.idToken);
    if (!session.user.isAdmin) {
        throw new UnauthorizedError('User is not admin');
    }
    return session;
}

export default handleAuth({
    async callback(req, res) {
        try {
            await handleCallback(req, res, { afterCallback });
        } catch (error) {
            res.status(error.status || 500).end(error.message);
        }
    }
});

However, keep in mind, you should generally avoid looking inside the access token by the client application. If you need to relay user information to the client, you should place it in an id_token. The access token is for use by the API, and your client application should not take any dependency on its content format or semantics since access tokens by design have no defined format.

这篇关于在auth0中获取accessToken的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆