对令牌感到困惑

Posted

技术标签:

【中文标题】对令牌感到困惑【英文标题】:get confusion on token 【发布时间】:2019-11-14 01:59:56 【问题描述】:

我一直在研究用户令牌以向该用户发送特定的推送通知。这是我创建的两个令牌放入 firebase。

public void getDeviceToken()
        FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
        String device_token = FirebaseInstanceId.getInstance().getToken();
        String msg = getString(R.string.fcm_token, device_token);
        Log.d("device_token", msg); //first one [dfw-A....]

        mUser.getIdToken(true)
                .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() 
                    public void onComplete(@NonNull Task<GetTokenResult> task) 
                        if (task.isSuccessful()) 
                            String idToken = task.getResult().getToken();
                            String uid = m_auth.getCurrentUser().getUid();
                            Log.d("device_token2", idToken); //second one [eyJh...]
                            DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users");
                            DatabaseReference id = ref.child(uid);
                            id.child("token").setValue(idToken);
                         else 
                            Log.e("Main_Err", "token" , task.getException());
                            // Handle error -> task.getException();
                        
                    
                );
    

我想知道是否要使用用户令牌来推送通知,我应该使用哪一个? [1/ 或 2]

【问题讨论】:

【参考方案1】:

要使用 Firebase 云消息传递发送通知,您应该使用来自 FirebaseInstanceId.getInstance().getToken() 的设备 ID 令牌。 Firebase 身份验证的另一个用户 ID 令牌根本无法帮助您处理消息。

请参阅documentation 了解更具体和全面的示例。

【讨论】:

【参考方案2】:

使用String device_token = FirebaseInstanceId.getInstance().getToken();

发送通知给用户,这个token是FCM专用的

【讨论】:

以上是关于对令牌感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

对如何在 Blazor App 中从 B2C 获取访问令牌感到困惑

对 CSRF 保护策略感到困惑

对 OAuth 感到困惑

如何保护刷新令牌?

使用 jwt 令牌认证识别用户

OAUTH2 刷新令牌