拦截器放行后如何获取token

  1. 拦截器放行后如何获取token
  2. 拦截器放行后如何获取token
  3. 拦截器放行后如何获取token

token放在头部的还是body
重新从request获取不到吗

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/760198
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:客户端登录添加token机制
  • 除此之外, 这篇博客: 集成华为推送客户端笔记中的 6.1获取token 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先 重写PushReceiver类onPushMsg、onPushState、onToken、onEvent方法,获取token在这里接收到后台发过来token。

    //<!--接收Push消息(注册、透传消息、通知栏点击事件)广播-->
    public class HuaweiPushRevicerQB extends PushReceiver {
        private static final String TAG = "华为广播1";
        /**
         * 透传消息会执行这个方法
         * @param context
         * @param bytes 消息的内容
         * @param s Token
         */
        @Override
        public void onPushMsg(Context context, byte[] bytes, String s) {
            super.onPushMsg(context, bytes, s);
            Charset charset = Charset.defaultCharset();
            ByteBuffer buf = ByteBuffer.wrap(bytes);
            CharBuffer cBuf = charset.decode(buf);;
            Log.d(TAG, "onPushMsg: "+s+"---"+ cBuf.toString());
        }
    
        /**
         * 连接状态的回调方法
         * @param context
         * @param b
         */
        @Override
        public void onPushState(Context context, boolean b) {
            super.onPushState(context, b);
            Log.d(TAG, "onPushState: ");
        }
    
        /**
         * getToken获取token值
         * @param context
         * @param s
         * @param bundle
         */
        @Override
        public void onToken(Context context, String s, Bundle bundle) {
            super.onToken(context, s, bundle);
            String belongId = bundle.getString("belongId");
            Log.d(TAG, "token:"+s+",belongId:"+belongId);
        }
    
        @Override
        public void onEvent(Context context, Event event, Bundle bundle) {
            Log.d(TAG, "onEvent: ");
            if (Event.NOTIFICATION_OPENED.equals(event) || Event.NOTIFICATION_CLICK_BTN.equals(event)) {
                int notifyId = bundle.getInt(BOUND_KEY.pushNotifyId, 0);
                Log.i(TAG, "收到通知栏消息点击事件,notifyId:" + notifyId);
                if (0 != notifyId) {
                    NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
                    manager.cancel(notifyId);
                }
            }
    
            String message = bundle.getString(BOUND_KEY.pushMsgKey);
            super.onEvent(context, event, bundle);
        }
    
    }
    
    

    写好接收广播后,就可以开始token请求了,执行HMSAgent.Push.getToken 返回0则说明请求成功,这时候HuaweiPushRevicerQB 就会收到广播并执行onToken,在onToken就能获取token值。

  • 您还可以看一下 课工场架构师老师的电商网站高并发秒杀实战课程中的 实现批量生成token小节, 巩固相关知识点