Laravel: Login sử dụng số điện thoại không cần mã nước?
Các cao nhân cho em hỏi: Khi đăng kí bằng số điện thoại từ Facebook và login thì khi ta thử đăng nhập bằng cách gõ +841687xx hoặc 01687xx hoặc 8401687 hoặc 01687xx thì đều đăng nhập được. Vậy Facebook làm sao để detect ra mã nước để đăng nhập trong trường hợp mình không gõ vào mã nước? có phải nó detect ra mình đang đăng nhập ở Việt Nam nên nó tự nối mã nước vào không nhỉ? Giả sử như thế thì ra nước ngoài nhập 01687xx thì liệu có đăng nhập được không. Và trong Laravel ai đã làm cho trường hợp này rồi thì cho em một vài gợi ý với ạ. (bow)
1 CÂU TRẢ LỜI
Ý tưởng
Bạn có thể tham khảo ý kiến của mình. Mình nghĩ là bạn có thể:
- Thêm phần cài đặt vùng/mã vùng. Người dùng có thể cài đặt. Nhưng cái này cũng ko hay lắm.
- Detect dựa trên ip của người dùng. Dựa vào IP của request gửi lên, mình detect ra thông tin địa điểm mà người dùng truy cập đến. Từ đó suy ra mã vùng cho số điện thoại. Sử dụng GeoPlugin hay iplocation.
- Hay là kết hợp cả 2 cách trên, hoặc một cách nào khác mà mình chưa nghĩ ra.
GeoPlugin
Chẳng hạn sử dụng GeoPlugin, mình gửi IP qua api tới geoplugin để lấy thông tin location:
curl http://geoplugin.net/json.gp?ip=1.55.242.188
Mình có result json trả về:
{
"geoplugin_request":"1.55.242.188",
"geoplugin_status":200,
"geoplugin_credit":"Some of the returned data includes GeoLite data created by MaxMind, available from <a href='http:\/\/www.maxmind.com'>http:\/\/www.maxmind.com<\/a>.",
"geoplugin_city":"Hanoi",
"geoplugin_region":"Ha N\u1ed9i",
"geoplugin_areaCode":"0",
"geoplugin_dmaCode":"0",
"geoplugin_countryCode":"VN",
"geoplugin_countryName":"Vietnam",
"geoplugin_continentCode":"AS",
"geoplugin_latitude":"21.0333",
"geoplugin_longitude":"105.85",
"geoplugin_regionCode":"44",
"geoplugin_regionName":"Ha N\u1ed9i",
"geoplugin_currencyCode":"VND",
"geoplugin_currencySymbol":"₫",
"geoplugin_currencySymbol_UTF8":"\u20ab",
"geoplugin_currencyConverter":22718
}
IPLocation (npm package)
var iplocation = require('iplocation')
iplocation('56.70.97.8')
.then(res => {
/* res:
{
as: 'AS11286 KeyBank National Association',
city: 'Cleveland',
country: 'United States',
countryCode: 'US',
isp: 'KeyBank National Association',
lat: 41.4875,
lon: -81.6724,
org: 'KeyBank National Association',
query: '156.77.54.32',
region: 'OH',
regionName: 'Ohio',
status: 'success',
timezone: 'America/New_York',
zip: '44115'
}
*/
})
.catch(err => {
console.error(err)
})
Đó là ý kiến của mình mà bạn có thể tham khảo. Còn với facebook thì cả một hệ thống lớn và nó có hết thông tin, vị trí của mình thì lại khác rồi. Khi mình di chuyển địa điểm từ vùng này sang vùng khác là lên facebook nó đã có thông báo và hỏi rằng mình chuyển địa điểm bla bla.. Có muốn ghé thăm nhà hàng, khu du lịch bla bla...
Cảm ơn bạn nhé! Cũng là 1 ý tưởng hay
Interesting question. Waiting for the answer