【问题标题】:How to manage token authentication in android app如何在 Android 应用程序中管理令牌身份验证
【发布时间】:2017-10-27 22:17:27
【问题描述】:

我正在使用 JWT 来管理我的应用程序的服务器身份验证。我在服务器中管理它。在我的 Angular 应用程序中,我使用 angular-jwt 来管理 jwt。如果过期如何调用刷新令牌API。我正在使用 volley 进行 API 调用。当令牌过期时,服务器会响应 401 错误代码。那个时候需要调用一个刷新令牌api。刷新调用后,我需要在没有任何用户输入的情况下再次调用之前的 API 调用。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
                (method, request_url, null, new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {

                        try {
                            if (response.getInt("status") == 1) {
                                callback.onSuccessResponse(response.get("data"));
                            } else {
                                callback.onSuccessResponse(new JSONArray());
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {

                        NetworkResponse networkResponse = error.networkResponse;
                        if (networkResponse != null && networkResponse.statusCode == 401) {

                        }

                    }
                }) {

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                String token = AppPreferencesHelper.getAccessToken(context);
                headers.put("Authorization", "Bearer " + token);
                return headers;
            }
        };

        Volley.newRequestQueue(context).add(jsonObjectRequest);

【问题讨论】:

    标签: android authentication android-volley jwt


    【解决方案1】:

    你需要调用api来验证令牌,如果它过期了你可以生成新的。

    或者如果你有登录功能,你可以在登录时检查 JWT 并在旧的过期时生成新的。

    我在我的应用程序中使用了一种非常基本的方式,我正在使用每个用户的唯一电子邮件地址创建 JWT,并将其存储到服务器的数据库中,并且永不过期。每当用户注销时,我都会删除 JWT,并在再次登录时生成新令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 2015-04-18
      • 2014-07-09
      • 2016-08-10
      • 2015-06-04
      • 1970-01-01
      • 2015-03-20
      相关资源
      最近更新 更多