android登录服务器验证失败,Android第三方登录与服务器端验证过程

开篇

随着时代的发展,现在对App要求不像早几年那样,大多数应用还是未联网的,现在的应用程序如果不能与用户进行较好的交互,就会少了太多的竞争力。说到交互,就必需要求我们访问网络,进行数据的交互。因为需要用户的信息,又少不了注册和登录的功能,而现在五花八门的账号,使得一些用户不想再又去注册一个,这里对于开发人员或者中小企业来说最好的选择就是直接使用第三方账号了,这里虽然标题是android,但其实这个过程和什么平台是没有什么关系的。

第三方账号与后台的绑定

这里主要讲讲最常见的QQ登录,首先我们需要的是去腾讯的开放平台去申请,以及读取官方文档,这些东西就不重复了。这里我们的重点是如何将用户

信息与后台进行相应的绑定,之前我没自己写过后台,刚开始面对这些时也是很模糊的,去百度搜出来的第三方登录,基本上都是讲OAuth协议的,也正是因为这一点,更加不清晰了。其实我们在移动端的登录与web端还是有较大的区别的,很重要的,就是登录后的回调。

既然要与后台进行绑定,肯定是需要唯一的标识符作为标准,因为保证安全性,所以我们在移动端进行登录后,并不能直接获取QQ账号,于是腾讯给我们提供了32位的OPEN_ID用来作为唯一标识,并且不同的应用OPEN_ID是不同的,但对于一个应用而言,这是唯一的标识符。

所以后台进行注册时

1.需要在服务器端判断数据库中中是否存在这个OPEN_ID 如果存在,就说明用户已经存在了,无需再进行注册。

2.如果不存在, 就从客户端向服务器端传递Access_Token和OPEN_ID,服务器端接收后就在这个地址进行验证

https://graph.qq.com/user/get_user_info?access_token=客户端传来的access_token&oauth_consumer_key=你申请到的appkey&openid=客户端传来的OPEN_ID&

请求后,这里会有一个返回一个键ret,值为0表示返回用户信息成功,这里进行下判断就可以了。

3.这样通过这两步就能与客户端登录的账号进行绑定。这里注意,登录其实就只是做一个验证而已。

使用JWT方式进行验证

上面说了与客户端与服务器端之间的绑定(其实就是类似于注册过程,不过用户不知道而已,过程都是交给后台去完成)。

注册成功后,可以使用一种比较安全,并且快速的验证方式,也就是JSON WEB TOKEN方式进行验证,对前端了解的朋友应该很熟悉这种方式,不熟悉的可以去网上搜一下,用这种方式进行请求验证,无需携带敏感信息。

1.首先用账号密码进行请求,服务器端返回给我们一个加密后的值。

(这里如果我们用Open_Id作为用户的唯一标识符的话,可以把用户信息的其它字段当作参数传递,这里就要结合具体的语言去进行修改了)

2.获取这个值后,可以保存在本地,等某些请求需要进行身份验证时,在把该值加入到请求头中。

3.请求时,还需要再加密后的这段值前面加上自定义的字符串。

这样一来即使服务器端返回的这个值被泄漏,用户的敏感信息照样能得到安全保证。在移动端进行请求时,直接携带请求头,就能快速的完成身份验证,实现单点登录。

结尾

因为这里这是阐述这个过程,没有具体的代码,所以就暂时到这里了。因为我觉得,对一门语言基本的东西解了,关键就是搞清楚这些业务逻辑,了解交互的过程,不局限于某一种语言,结合具体的框架去做相应的调整。经验无非也是更加理解整个过程,才能得来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Android应用程序中实现登录注册连接MySQL,需要以下步骤: 1.创建一个MySQL数据库,包含用户表和登录表。 2.在Android应用程序中创建一个用户界面,包括登录和注册表单。 3.使用Java编写代码来连接MySQL数据库,执行查询和插入操作。 4.在用户界面中添加适当的代码,以便在用户提交表单时将数据发送到MySQL数据库。 5.在应用程序中实现适当的验证和错误处理,以确保用户输入的数据正确。 6.在应用程序中实现适当的安全措施,例如加密密码和使用SSL连接。 7.测试应用程序,确保它可以正确地连接和操作MySQL数据库。 总之,要在Android应用程序中实现登录注册连接MySQL,需要一些编程知识和技能。但是,一旦你掌握了这些技能,你就可以创建出一个功能强大的应用程序,可以让用户轻松地注册和登录,并将数据存储在MySQL数据库中。 ### 回答2: Android登录注册连接MySQL是一种常见的开发需求,可以通过以下步骤实现。 首先,需要在MySQL数据库中创建相应的用户表,包括用户名、密码等必要的字段。可以使用phpMyAdmin等工具进行创建。 然后,在Android项目中导入MySQL的JDBC驱动库。这样才能在Android项目中使用MySQL的相关功能。 接下来,在Android应用中创建一个包含登录和注册功能的界面,可以使用EditText控件来获取用户输入的用户名和密码。 在登录功能中,当用户点击登录按钮后,首先需要进行输入验证,确保用户名和密码不为空。然后,Android应用通过JDBC连接MySQL数据库,并执行SQL语句查询用户表中是否有匹配的记录。如果有匹配的记录,说明用户名和密码正确,则登录成功,可以跳转到应用的主界面;否则,登录失败,需要提示用户重新输入。 在注册功能中,当用户点击注册按钮后,同样需要进行输入验证,确保用户名和密码不为空。然后,Android应用通过JDBC连接MySQL数据库,并执行SQL语句将新用户的信息插入到用户表中。插入成功后,提示用户注册成功;否则,提示用户注册失败。 需要注意的是,在连接MySQL数据库时,需要提供数据库的IP地址、端口号、数据库名、用户名和密码等信息。 综上所述,通过以上步骤,可以实现Android应用与MySQL数据库的登录注册功能的连接。最后,可以通过添加一些其他的功能来完善应用,比如修改密码、忘记密码等。 ### 回答3: 要在Android应用中实现登录注册功能并连接MySQL数据库,需要完成以下步骤: 1. 创建一个包含登录和注册界面的Android应用。可以使用Android Studio进行开发,设计合适的布局和界面。 2. 在MySQL数据库中创建一个表格,用于存储用户的用户名和密码等信息。可以使用phpMyAdmin等工具进行数据库表的创建和管理。 3. 在Android应用中添加相关的Java类和方法,以实现与MySQL数据库的连接和操作。可以使用第三方库如Volley库来进行网络请求。 4. 在注册界面中,用户输入用户名和密码等信息后,通过发送HTTP POST请求将信息发送到服务器端的php文件。 5. 服务器端的php文件接收到用户的注册信息后,通过SQL INSERT语句将数据插入到MySQL数据库中的表格中。 6. 在登录界面中,用户输入用户名和密码后,同样通过发送HTTP POST请求将登录信息发送到服务器端的php文件。 7. 服务器端的php文件接收到用户的登录信息后,通过SQL SELECT语句查询数据库,判断用户输入的用户名和密码是否与数据库中的信息匹配。 8. 服务器端将查询结果返回给Android应用,如果匹配成功,则用户登录成功;否则,登录失败。 9. 在登录成功后,可以将用户的相关信息保存在SharedPreferences中,方便应用的其他模块使用。 10. 在Android应用中,根据用户的登录状态,可以控制界面的跳转,如跳转到登录成功后的主界面。 以上是实现Android登录注册连接MySQL的基本步骤,可以根据实际需求进行适当的调整和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值